que estoy viendo el código de mi amigo aquí ...evento desencadenante teclado en un formulario con un campo
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> Check action </TITLE>
<script>
function detectEvent(){
if(window.event.keyCode==13)
{
alert("you hit return!");
}
}
</script>
</HEAD>
<BODY>
<form name="name1" onkeyup="detectEvent()" action="page2.html">
<p> Field1
<input type="text" id="text1"/>
</p>
</form>
</BODY>
</HTML>
y cuando trató de introducir un valor en el cuadro de texto y presiona entrar, no llamar el detectorEvento(). He dicho, siempre llamará onSubmit el botón enter ..... y me sorprendió,
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> Check action </TITLE>
<script>
function detectEvent(){
if(window.event.keyCode==13)
{
alert("you hit return!");
}
}
</script>
</HEAD>
<BODY>
<form name="name1" onkeyup="detectEvent()" action="page2.html">
<p> Field1
<input type="text" id="text1"/>
</p>
<p> Field1
<input type="text" id="text2"/>
</p>
</form>
</BODY>
</HTML>
Ahora pulsa ENTER, la función se llama a ..... ¿Por qué tan !?
¿Por qué onKeyUp no se llama en formularios con solo un campo.! ¿Me estoy perdiendo de algo?
Estoy de acuerdo con su respuesta, por lo general solo debe tener un controlador de envío que devuelve falso si no se debe enviar el formulario. Sin embargo, escribo un montón de código ajax que no solo envía formularios y vuelve a encerrar la página. Así que, sin preocuparse por el diseño, Bobince lo corrigió, debe enumerarse para el evento de selección, ya que el evento clave se cancela cuando se dispara el evento de envío –
@bobince ¡Muchas gracias! eso explica el comportamiento ... * pero los navegadores del día parecen haber interpretado que eso significa que Enter-submission no debería ocurrir donde hay múltiples campos, pero luego cualquier botón de envío hace que Enter-submission pase de todos modos. IE y otros navegadores posteriores copiaron este comportamiento extraño. * No es el caso con Chrome., .. chrome envía el formulario en el botón enter.! – raj
¿Dónde podría obtener más información sobre la prioridad de los eventos html?? W3schools no parece hablar sobre las prioridades. – raj