Je voudrais détecter si l'utilisateur a appuyé Entersur jQuery.
Comment est-ce possible? Faut-il un plugin?
EDIT: Il semble que je doive utiliser la keypress()
méthode.
Je voulais savoir si quelqu'un savait s'il y avait des problèmes de navigateur avec cette commande - comme y a-t-il des problèmes de compatibilité de navigateur que je devrais connaître?
Réponses:
L'intérêt de jQuery est que vous n'avez pas à vous soucier des différences de navigateur. Je suis sûr que vous pouvez en toute sécurité enterêtre 13 dans tous les navigateurs. Donc, avec cela à l'esprit, vous pouvez le faire:
la source
$(window)
sous IE) quirksmode.org/dom/events/keys.htmlJ'ai écrit un petit plugin pour faciliter la liaison d'un événement "à la touche entrée enfoncée":
Usage:
la source
#input
sur le<input>
terrain)$("#input").on("someevent","someselector",function () {})
Je n'ai pas pu faire fonctionner le code posté par @Paolo Bergantino mais quand je l'ai changé
$(document)
ete.which
au lieu de cela,e.keyCode
je l'ai trouvé fonctionner sans problème.Lien vers l'exemple sur JS Bin
la source
J'ai trouvé que c'était plus compatible avec tous les navigateurs:
la source
Vous pouvez le faire en utilisant le descripteur d'événement jquery 'keydown'
la source
Utilisez
event.key
et JS moderne!ou sans jQuery:
Documents Mozilla
Navigateurs pris en charge
la source
J'ai passé quelque temps à trouver cette solution, j'espère qu'elle aide quelqu'un.
la source
Il existe une méthode d'événement keypress () . Le numéro ascii de la touche Entrée est 13 et ne dépend pas du navigateur utilisé.
la source
Une extension mineure de la réponse d'Andrea ci-dessus rend la méthode d'aide plus utile lorsque vous pouvez également capturer des pressions d'entrée modifiées (c'est-à-dire ctrl-enter ou shift-enter). Par exemple, cette variante permet la liaison comme:
pour soumettre un formulaire lorsque l'utilisateur appuie sur ctrl-entrée en mettant l'accent sur la zone de texte de ce formulaire.
(voir aussi Ctrl + Entrée jQuery dans TEXTAREA )
la source
Dans certains cas, vous devrez peut-être supprimer la ENTERclé pour une certaine zone d'une page mais pas pour d'autres zones d'une page, comme la page ci-dessous qui contient un en- tête
<div>
avec un champ RECHERCHE .Il m'a fallu un peu de temps pour comprendre comment le faire, et je publie ici cet exemple simple mais complet pour la communauté.
Lien vers JSFiddle Playground : le
[Submit]
bouton ne fait rien, mais en appuyant ENTERsur l'un des contrôles de la zone de texte, le formulaire ne sera pas envoyé.la source
Essayez ceci pour détecter la touche Entrée enfoncée.
Voir démo @ détecter appuyez sur la touche Entrée du clavier
la source
Étant donné que l'
keypress
événement n'est couvert par aucune spécification officielle, le comportement réel rencontré lors de son utilisation peut différer d'un navigateur à l'autre, d'une version à l'autre et d'une plateforme à l'autre.J'espère que ce serait utile!
la source
keypress
n'est pas dans les spécifications (plus) est qu'elle est obsolète ( MDN ).Le moyen facile de détecter si l'utilisateur a appuyé sur Entrée est d'utiliser le numéro de clé, le numéro de clé d'entrée est = 13 pour vérifier la valeur de la clé dans votre appareil
en appuyant sur la touche Entrée, vous obtiendrez le résultat 13. en utilisant la valeur clé, vous pouvez appeler une fonction ou faire ce que vous voulez
si vous souhaitez cibler un bouton une fois la touche Entrée enfoncée, vous pouvez utiliser le code
J'espère que ça aide
la source
Je pense que la méthode la plus simple serait d'utiliser du javacript vanille :
la source
la source
la source
J'ai utilisé
$(document).on("keydown")
.Sur certains navigateurs
keyCode
n'est pas pris en charge. La même chose avecwhich
donc sikeyCode
n'est pas pris en charge, vous devez utiliserwhich
et vice versa.la source