Comment puis-je déclencher automatiquement un événement de touche entrée après l’exécution d’une action donnée?

J’écris des tests unitaires dans mes applications Web et je veux déclencher automatiquement un événement lié à la touche Entrée de ma page après avoir cliqué par exemple sur un bouton de téléchargement dans un fichier texte. Comment puis-je le faire dans jQuery ou Javascript?

  1. Créez une variable qui nous indique si l’utilisateur a cliqué sur votre bouton.

    var clicked = false; 
  2. Ajoutez un écouteur d’événement à votre bouton, de sorte que lorsque l’utilisateur clique dessus, la variable sélectionnée devient true .

     myButton.addEventListener('click', function(){ clicked = true; }); 
  3. Ajouter un écouteur d’événement de frappe:

     document.addEventListener('keypress', function(e) { // `e` is the event }); 
  4. Dans cet écouteur d’événement, vérifiez si l’utilisateur a cliqué précédemment

     if(clicked) { // ... } 
  5. Si tel est le cas, vérifiez la touche enfoncée. Le code de clé de l’entrée est 13.

     var keynum = e.keyCode||e.which; if(keynum == 13) { // ... } 
  6. Si la touche enfoncée était entrée, utilisez

     clicked = false; 

    Sinon, une fois que l’utilisateur a cliqué sur votre bouton et appuyé sur Entrée, il ne serait pas nécessaire de cliquer à nouveau sur le bouton.

  7. Après cela, lancez votre code. Par exemple, cela appellera la fonction f après 2 secondes.

     setTimeout(f, 2000); 

Démo en direct

 var clicked = false; document.querySelector('#btn').addEventListener('click', function(){ clicked = true; snippet.log("You clicked the button. `clicked` is now `true`"); }); document.addEventListener('keypress', function(e) { if(clicked) { var keynum = e.keyCode || e.which; if(keynum == 13) { clicked = false; snippet.log("`clicked` is now `false`. Waiting 2 seconds..."); setTimeout(f, 2000); } } }); function f() { snippet.log("Function `f` executed successfully!"); } 
 #btn { border: 3px solid red; cursor: pointer; } 
 
Click me, and then press enter.

Si je comprends bien votre question, voici ce que vous recherchez

          

Si vous parlez d’entrer automatiquement une touche Entrée pour déclencher un événement de submit , vous pouvez utiliser ceci à la place:

 $("#formID").submit(); 

Pour déclencher cet événement après avoir appuyé sur un bouton, essayez ceci:

 $("#buttonID").click(function() { $("#formID").submit(); // submits form }); 
 $("#txtfield").keyup(function(e) { if(e.keyCode == 13) { $("#submit").submit(); } });