saltar que presionar navegador formulario evitar evento envíe controlar con capturar campos boton automatico atras activar javascript event-handling cross-browser enter

javascript - que - evitar submit al presionar enter



Capture la tecla Enter entre navegadores, mi solución no funciona (2)

Tengo lo que pensé que era una solución de varios navegadores para capturar la tecla Intro en un script de chat que estoy creando, aquí está:

nn=(document.layers)?true:false; ie=(document.all)?true:false; function keyDown(e) { var evt=(e)?e:(window.event)?window.event:null; if(evt){ var key=(evt.charCode)?evt.charCode: ((evt.keyCode)?evt.keyCode:((evt.which)?evt.which:0)); if(key=="13") document.getElementById(''chatEnter'').submit(); } } document.onkeydown=keyDown; if(nn) document.captureEvents(Event.KEYDOWN);

¿Esto lo obtuve de otra persona, entonces quizás esté desactualizado? De todos modos, el atributo id de formulario es chatEnter como puede ver. También intenté usar document.forms [0] .submit y tampoco funcionó. Funciona bien en FF pero no tiene suerte en IE8 de 64 bits (esos son los únicos dos que he probado hasta ahora). ¿Qué estoy haciendo mal aquí? Gracias por cualquier ayuda.


Estás en lo cierto, el ejemplo que obtuviste está muy desactualizado y contiene un código para tratar con Netscape 4, que ha sido irrelevante durante aproximadamente una década.

No use jQuery solo para esto. No es difícil, si solo es la tecla Enter que desea capturar:

document.onkeydown = function(e) { e = e || window.event; if (e.keyCode == 13) { document.getElementById("chatEnter").submit(); } };


prueba usando>

$(document).keypress(function(e) { if (e.which == "13") { //enter pressed } });

por supuesto, necesitarías jQuery para ello. No puede haber una mejor solución entre navegadores que utilizar un marco de navegador cruzado probado y ampliamente utilizado.