276 votes

Événement de JQuery pour écraser les utilisateur Entrez dans une zone de texte ?

Y a-t-il n’importe quel événement dans Jquery qui est déclenché uniquement si l’utilisateur appuie sur la touche enter dans un textbox ? Ou n’importe quel plugin qui peut être ajouté pour inclure ce point ? Si ce n’est pas le cas, Comment J’écrirais un plugin rapide qui ferait cela ?

495voto

TheSuperTramp Points 5641

Vous pouvez associer vos propres événements personnalisés

http://jsfiddle.net/x7HVQ/

117voto

Etienne Dupuis Points 4573
   $('#textbox').on('keypress', function (event) {
         if(event.which == '13'){

            //Disable textbox to prevent multiple submit
            $(this).attr("disabled", "disabled");

            //Do Stuff, submit, etc..
         }
   });

40voto

Neal Points 68710

Voici un plugin pour vous : (violon : http://jsfiddle.net/maniator/CjrJ7/)

19voto

jzilla Points 690

Heres un plugin jquery pour le faire

pour l’utiliser, inclure le code et mis en place comme ceci :

jsfiddle ici http://jsfiddle.net/VrwgP/30/

8voto

Joshua Burns Points 2800

Il convient de bien noter que l'utilisation de l' live() en jQuery a été déprécié depuis la version 1.7 et a été supprimé en jQuery 1.9. Au lieu de cela, l'utilisation d' on() est recommandé.

Je vous suggère fortement de la méthodologie suivante pour la liaison, car elle résout le défis:

  1. Par la liaison de l'événement sur document.body et passant de $selector comme deuxième argument on(), les éléments peuvent être attaché, détaché, ajoutés ou supprimés dans les DOM, sans avoir à traiter avec les re-liaison ou une double liaison à des événements. C'est parce que l'événement est attaché document.body plutôt que d' $selector directement, ce qui signifie $selector peuvent être ajoutés, supprimés et ajoutés à nouveau et ne sera jamais à la charge de l'événement lié à elle.
  2. En appelant off() avant on(), ce script peut vivre soit dans l'intérieur du corps principal de la page, ou dans le corps d'un appel AJAX, sans avoir à se soucier accidentellement double-liaison des événements.
  3. En enveloppant le script dans $(function() {...}), ce script peut encore être chargé par le corps principal de la page, ou dans le corps d'un appel AJAX. $(document).ready() ne pas me faire virer pour des requêtes AJAX, tout en $(function() {...}) .

Voici un exemple:

<!DOCTYPE html>
  <head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script type="text/javascript">
      $(function() {
        var $selector = $('textarea');

        // Prevent double-binding
        // (only a potential issue if script is loaded through AJAX)
        $(document.body).off('keyup', $selector);

        // Bind to keyup events on the $selector.
        $(document.body).on('keyup', $selector, function(event) {
          if(event.keyCode == 13) { // 13 = Enter Key
            alert('enter key pressed.');
          }
        });
      });
    </script>
  </head>
  <body>

  </body>
</html>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X