Question Comment détecter en appuyant sur Entrée sur le clavier en utilisant jQuery?


Je voudrais détecter si l'utilisateur a appuyé sur Enter en utilisant jQuery.

Comment est-ce possible? Est-ce qu'il nécessite un plugin?

EDIT: Il semble que je dois utiliser le keypress() méthode.

Je voulais savoir si quelqu'un sait s'il y a des problèmes de navigateur avec cette commande - comme il ya des problèmes de compatibilité de navigateur que je devrais connaître?


614
2018-06-11 06:39


origine


Réponses:


Le but de jQuery est que vous n'avez pas à vous soucier des différences de navigateur. Je suis sûr que vous pouvez aller en toute sécurité avec entrer être 13 dans tous les navigateurs. Donc, dans cet esprit, vous pouvez le faire:

$(document).keypress(function(e) {
    if(e.which == 13) {
        alert('You pressed enter!');
    }
});

1153
2018-06-11 06:49



J'ai écrit un petit plugin pour faciliter la liaison de la touche "on enter key press":

$.fn.enterKey = function (fnc) {
    return this.each(function () {
        $(this).keypress(function (ev) {
            var keycode = (ev.keyCode ? ev.keyCode : ev.which);
            if (keycode == '13') {
                fnc.call(this, ev);
            }
        })
    })
}

Usage:

$("#input").enterKey(function () {
    alert('Enter!');
})

114
2018-04-01 14:00



Je n'ai pas pu obtenir le code affiché par @Paolo Bergantino au travail, mais quand je l'ai changé pour $(document) et e.which au lieu de e.keyCode alors je l'ai trouvé pour fonctionner sans faute.

$(document).keypress(function(e) {
    if(e.which == 13) {
        alert('You pressed enter!');
    }
});

Lien vers l'exemple sur JS Bin


57
2018-06-21 10:45



J'ai trouvé cela plus compatible avec plusieurs navigateurs:

$(document).keypress(function(event) {
    var keycode = event.keyCode || event.which;
    if(keycode == '13') {
        alert('You pressed a "enter" key in somewhere');    
    }
});

44
2018-03-13 19:09



Vous pouvez le faire en utilisant le handle d'événement jquery 'keydown'

   $( "#start" ).on( "keydown", function(event) {
      if(event.which == 13) 
         alert("Entered!");
    });

22
2017-10-11 07:20



Il y a un appuyez sur la touche() méthode d'événement. Le numéro ASCII de la touche Entrée est 13 et ne dépend pas du navigateur utilisé.


8
2018-06-11 06:45



J'ai passé quelque temps à trouver cette solution, j'espère que cela aidera quelqu'un.

$(document).ready(function(){

  $('#loginforms').keypress(function(e) {
    if (e.which == 13) {
    //e.preventDefault();
    alert('login pressed');
    }
  });

 $('#signupforms').keypress(function(e) {
    if (e.which == 13) {
      //e.preventDefault();
      alert('register');
    }
  });

});

8
2018-01-05 00:28