Me gustaría detectar si el usuario ha presionado Enterusando jQuery.
¿Cómo es esto posible? ¿Requiere un complemento?
EDITAR: Parece que necesito usar el keypress()
método.
Quería saber si alguien sabe si hay problemas de navegador con ese comando, como si hubiera algún problema de compatibilidad de navegador que debería conocer.
Respuestas:
El objetivo de jQuery es que no tiene que preocuparse por las diferencias del navegador. Estoy bastante seguro de que puedes seguir con seguridad entersiendo 13 en todos los navegadores. Con eso en mente, puedes hacer esto:
fuente
$(window)
IE) quirksmode.org/dom/events/keys.htmlEscribí un pequeño complemento para que sea más fácil vincular el evento "al presionar la tecla enter":
Uso:
fuente
#input
al<input>
campo)$("#input").on("someevent","someselector",function () {})
No pude hacer que el código publicado por @Paolo Bergantino funcionara, pero cuando lo cambié
$(document)
y ene.which
lugar dee.keyCode
eso, encontré que funcionaba sin fallas.Enlace al ejemplo en JS Bin
fuente
Encontré que esto es más compatible con todos los navegadores:
fuente
Puede hacerlo utilizando el controlador de eventos 'keydown' de jquery
fuente
Uso
event.key
y moderno JS!o sin jQuery:
Documentos de Mozilla
Navegadores Soportados
fuente
Pasé algún tiempo ideando esta solución, espero que ayude a alguien.
fuente
Hay un método de evento keypress () . El número ASCII de la tecla Intro es 13 y no depende del navegador que se esté utilizando.
fuente
Una extensión menor de la respuesta de Andrea anterior hace que el método auxiliar sea más útil cuando también desee capturar prensas de entrada modificadas (es decir, ctrl-enter o shift-enter). Por ejemplo, esta variante permite la unión como:
para enviar un formulario cuando el usuario presiona ctrl-enter con foco en el área de texto de ese formulario.
(vea también Ctrl + Enter jQuery en TEXTAREA )
fuente
En algunos casos, es posible que deba suprimir la ENTERtecla para un área determinada de una página, pero no para otras áreas de una página, como la página a continuación que contiene un encabezado
<div>
con una BÚSQUEDA campo de .Me llevó un poco descubrir cómo hacer esto, y estoy publicando este ejemplo simple pero completo aquí para la comunidad.
Enlace a JSFiddle Playground : el
[Submit]
botón no hace nada, pero al presionar ENTERdesde uno de los controles del cuadro de texto no se enviará el formulario.fuente
Intente esto para detectar la tecla Intro presionada.
Vea demo @ detect presione la tecla enter en el teclado
fuente
Como el
keypress
evento no está cubierto por ninguna especificación oficial, el comportamiento real encontrado al usarlo puede diferir entre navegadores, versiones de navegador y plataformas.¡Espero que sea útil!
fuente
keypress
ya no está en la especificación (más) es que ha quedado en desuso ( MDN ).La manera fácil de detectar si el usuario ha presionado enter es usar el número de tecla, el número de tecla enter es = 13 para verificar el valor de la tecla en su dispositivo
Al presionar la tecla Intro obtendrá el resultado como 13. usando el valor de la tecla puede llamar a una función o hacer lo que quiera
si desea apuntar a un botón una vez que presione la tecla Intro, puede usar el código
Espero que ayude
fuente
Creo que el método más simple sería usar vainilla javacript:
fuente
fuente
fuente
He utilizado
$(document).on("keydown")
.En algunos navegadores
keyCode
no es compatible. Lo mismo conwhich
sikeyCode
no es compatible, debe usarlowhich
y viceversa.fuente