Tengo un cuadro de texto simple y entrada de tipo de botón en mi página.Al presionar Enter Always Submits Form
<input id="sText" type="text" />
<input id="sButton" type="button" value="button" />
Capturo un botón, haga clic con jQuery.
$("[id$=sButton]").click(function() {
...do Stuff
});
El código anterior funciona bien siempre que haga clic manualmente en el botón. Comencé a tener problemas cuando quería usar la tecla "enter" para hacer clic en el botón. No importa lo que haga, no puedo evitar que la tecla Enter ejecute su función de envío predeterminada.
Lo primero que hice fue cambiar el tipo de entrada de "enviar" a "botón".
Intenté fijar onsubmit del formulario a onsubmit="return false;"
He intentado utilizar jQuery para capturar al entrar evento clave:
$("#sText").keyup(function (event) {
if (event.keyCode == 13) {
alert("Enter!");
// $("#sButton").click();
}
});
Cada vez que pulse la tecla Intro, es como si estuviera enviando el formulario , la página completa se actualiza. El código jQuery anterior captura la pulsación de tecla "enter", pero el formulario aún envía y actualiza la página.
No estoy seguro de qué está pasando.
+1 para la sugerencia de la tecla –
Además de agregar "event.preventDefault()" también tuve que cambiar "keyup" por "presionar la tecla", no funcionó ni keyup ni keydown. ¡Gracias! – SharpBarb
Parece que mantener el control de la tecla Intro y el botón como un tipo de botón en lugar de volverlo a enviar está usando mucho código adicional. –