Tengo un formulario de inicio de sesión estándar: un campo de texto de correo electrónico, un campo de contraseña y un botón de envío en un proyecto de AIR que utiliza HTML / jQuery. Cuando presiono Enter en el formulario, todo el contenido del formulario desaparece, pero el formulario no se envía. ¿Alguien sabe si esto es un problema de Webkit (Adobe AIR usa Webkit para HTML), o si he agrupado las cosas?
Lo intenté:
$('.input').keypress(function (e) {
if (e.which == 13) {
$('form#login').submit();
}
});
Pero eso no detuvo el comportamiento de limpieza ni envió el formulario. No hay ninguna acción asociada con el formulario, ¿podría ser ese el problema? ¿Puedo poner una función de JavaScript en la acción?
Respuestas:
Vea esta respuesta de stackoverflow: event.preventDefault () vs. return false
Básicamente, "return false" es lo mismo que llamar
e.preventDefault
ye.stopPropagation()
.fuente
Además de devolver falso como Jason Cohen mencionó. Es posible que también deba evitar
fuente
return false
en un evento administrado por jQuery, llame automáticamente a e.preventDefault ()No sé si ayudará, pero puede intentar simular un clic en el botón Enviar, en lugar de enviar directamente el formulario. Tengo el siguiente código en producción, y funciona bien:
Nota: jQuery ('# submit'). Focus () hace que el botón se anime cuando se presiona enter.
fuente
Regrese
false
para evitar que continúe presionando la tecla.fuente
¿Hay alguna razón para conectar y probar la tecla enter?
¿No podrías simplemente agregar un
a su formulario y, naturalmente, ¿se debe enviar cuando se presiona enter? Incluso podría conectar la
onsubmit
acción del formulario y llamar a una función de validación desde allí si lo desea ...Incluso podría usarlo
onsubmit
como prueba para ver si su formulario se está enviando, pero no funcionará si llamaform.submit()
.fuente
return false;
asunto.Aquí hay una manera de hacer esto como un complemento de JQuery (en caso de que quiera reutilizar la funcionalidad):
Ahora, si desea decorar un
<input>
elemento con este tipo de funcionalidad, es tan simple como esto:fuente
También puede simplemente agregar
onsubmit="return false"
al código de formulario en la página para evitar el comportamiento predeterminado.Luego, enganche (
.bind
o.live
) elsubmit
evento del formulario a cualquier función con jQuery en el archivo javascript.Aquí hay un código de muestra para ayudar:
HTML
Javascript + jQuery
Esto funciona a partir del 2011-04-13, con Firefox 4.0 y jQuery 1.4.3
fuente
Este es mi código:
fuente
También para mantener la accesibilidad, debe usar esto para determinar su código clave:
fuente
Solo agregando para una fácil implementación. Simplemente puede hacer un formulario y luego ocultar el botón Enviar:
Por ejemplo:
fuente
Yo uso ahora
Al principio agregué un controlador de eventos al botón de envío que produjo un error para mí.
fuente
Descubrí hoy que el evento de pulsación de tecla no se activa al presionar la tecla Intro, por lo que es posible que desee cambiar a keydown () o keyup () en su lugar.
Mi script de prueba:
La salida en la consola al escribir "A Enter B" en el teclado:
Verá en la segunda secuencia que falta la 'pulsación de tecla', pero se presionó / soltó el código de registro de tecla y tecla de acceso '13'. Según la documentación de jQuery sobre la función keypress () :
Probado en IE11 y FF61 en Server 2012 R2
fuente
En códigos HTML:
En códigos Js:
fuente
Prueba esto:
fuente