429 votes

Détecter la touche Entrée dans un champ de saisie de texte

J'essaie de faire une fonction si l'entrée est pressée pendant une entrée spécifique.

Qu'est-ce que je fais de mal ?

$(document).keyup(function (e) {
    if ($(".input1").is(":focus") && (e.keyCode == 13)) {
        // Do something
    }
});

Existe-t-il une meilleure façon de procéder qui dirait que, si l'on appuie sur la touche "entrée" sur .input1 fonctionnent ?

2 votes

0 votes

Toutes les solutions sont valables, mais gardez à l'esprit que vous devez utiliser e.key ou e.code, car e.which et e.keyCode sont tous deux dépréciés. Vous pouvez trouver les bonnes valeurs pour les clés que vous voulez détecter ici : keyjs.dev

6voto

Indra Points 177

Il est peut-être trop tard pour répondre à cette question. Mais le code suivant empêche simplement la touche Entrée. Un simple copier-coller devrait fonctionner.

        <script type="text/javascript"> 
        function stopRKey(evt) { 
          var evt = (evt) ? evt : ((event) ? event : null); 
          var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null); 
          if ((evt.keyCode == 13) && (node.type=="text"))  {return false;} 
        } 

        document.onkeypress = stopRKey; 

        </script>

5voto

La solution qui fonctionne pour moi est la suivante

$("#element").addEventListener("keyup", function(event) {
    if (event.key === "Enter") {
        // do something
    }
});

2voto

jonathan klevin Points 149

Essayez ceci pour détecter la touche Entrée enfoncée dans une zone de texte.

$(document).on("keypress", "input", function(e){
    if(e.which == 13){
        alert("Enter key pressed");
    }
});

DEMO

0voto

Jobelle Points 1437
 $(document).ready(function () {
        $(".input1").keyup(function (e) {
            if (e.keyCode == 13) {
                // Do something
            }
        });
    });

0voto

Umar Niazi Points 72

Ce code a géré toutes les entrées pour moi sur l'ensemble du site. Il vérifie la présence de la touche ENTRÉE dans un champ de saisie et ne s'arrête pas aux zones de texte ou à d'autres endroits.

$(document).on("keydown", "input", function(e){
 if(e.which == 13){
  event.preventDefault();
  return false;
 }
});

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