193 votes

Jquery : comment déclencher l'événement "clic" en appuyant sur la touche "entrée" ?

J'ai besoin d'exécuter un événement de clic de bouton en appuyant sur la touche Entrée.

En l'état actuel des choses, l'événement n'est pas déclenché.

Veuillez m'aider avec la syntaxe si possible.

$(document).on("click", "input[name='butAssignProd']", function () {
   //all the action
});

Voici ma tentative de déclencher un événement de clic sur l'entrée.

$("#txtSearchProdAssign").keydown(function (e) {
  if (e.keyCode == 13) {
    $('input[name = butAssignProd]').click();
  }
});

354voto

Vijay Points 2557

Essayez ceci....

$('#txtSearchProdAssign').keypress(function (e) {
 var key = e.which;
 if(key == 13)  // the enter key code
  {
    $('input[name = butAssignProd]').click();
    return false;  
  }
});   

$(function() {

  $('input[name="butAssignProd"]').click(function() {
    alert('Hello...!');
  });

  //press enter on text area..

  $('#txtSearchProdAssign').keypress(function(e) {
    var key = e.which;
    if (key == 13) // the enter key code
    {
      $('input[name = butAssignProd]').click();
      return false;
    }
  });

});

<!DOCTYPE html>
<html>

<head>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"></script>
  <meta charset=utf-8 />
  <title>JS Bin</title>
</head>

<body>
  <textarea id="txtSearchProdAssign"></textarea>
  <input type="text" name="butAssignProd" placeholder="click here">
</body>

</html>

Trouvez la démo sur jsbin.com

32voto

Neeraj Dubey Points 1515

Essayez ceci

$('#twitterSearch').keydown(function(event){ 
    var id = event.key || event.which || event.keyCode || 0;   
    if (id == 13) {
        $('#startSearch').trigger('click');
    }
});

J'espère que cela vous aidera

Voir aussi stackoverflow.com/ keyCode vs which ?

16voto

geekchic Points 1653
$('#txtSearchProdAssign').keypress(function (e) {
  if (e.which == 13) {
    $('input[name = butAssignProd]').click();
    return false;  
  }
});

Je viens aussi de trouver Soumettre un formulaire en appuyant sur "Entrée". qui couvre la plupart des questions de manière exhaustive.

8voto

Rohit416 Points 2472

Vous y étiez presque. Mais voici ce que vous pouvez essayer.

$(function(){
  $("#txtSearchProdAssign").keyup(function (e) {
    if (e.which == 13) {
      $('input[name="butAssignProd"]').trigger('click');
    }
  });
});

J'ai utilisé trigger() pour exécuter le clic et le lier sur l'objet keyup événement au lieu de keydown parce que click L'événement est composé de deux événements en réalité, à savoir mousedown puis mouseup . Donc pour ressembler le plus possible aux choses avec keydown y keyup .

Voici un Démo

6voto

Daniel Dewhurst Points 1368

Un autre ajout à faire :

Si vous ajoutez dynamiquement une entrée, par exemple en utilisant append() vous devez utiliser l'outil jQuery on() fonction.

$('#parent').on('keydown', '#input', function (e) {
    var key = e.which;
    if(key == 13) {
        alert("enter");
        $('#button').click();
        return false;
    }
});

UPDATE :

Une façon encore plus efficace de le faire serait d'utiliser une instruction switch. Vous la trouverez peut-être plus propre aussi.

Markup :

<div class="my-form">
  <input id="my-input" type="text">
</div>

jQuery :

$('.my-form').on('keydown', '#my-input', function (e) {
  var key = e.which;
  switch (key) {
  case 13: // enter
    alert('Enter key pressed.');
    break;
  default:
    break;
  }
});

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