Jquery: comment déclencher un événement de 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.

Tel qu'il est en ce moment, l'événement ne tire pas.

Veuillez M'aider avec la syntaxe si possible.

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

C'est ma tentative de déclencher l'événement click sur Entrée.

$("#txtSearchProdAssign").keydown(function (e) {
  if (e.keyCode == 13) {
    $('input[name = butAssignProd]').click();
  }
});
127
demandé sur madhead 2013-08-10 13:01:18

9 réponses

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>

Trouver la Démo en jsbin.com

248
répondu Vijay 2017-03-10 12:24:31

Essayez Ceci

$('#twitterSearch').keydown(function(event){ 
    var keyCode = (event.keyCode ? event.keyCode : event.which);   
    if (keyCode == 13) {
        $('#startSearch').trigger('click');
    }
});

J'espère que cela vous aidera

22
répondu Neeraj Dubey 2014-11-26 08:49:47
$('#txtSearchProdAssign').keypress(function (e) {
  if (e.which == 13) {
    $('input[name = butAssignProd]').click();
    return false;  
  }
});

Je viens également de trouver Soumettre un formulaire sur 'Enter' qui couvre la plupart des problèmes de manière exhaustive.

9
répondu geekchic 2017-05-23 12:34:48

Tu y étais presque. Voici ce que vous pouvez essayer si.

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

, j'ai utilisé trigger() pour exécuter et cliquez sur lier sur la keyup manifestation place de keydown, car click événement se compose de deux événements en fait c'est à dire mousedown, puis mouseup. Donc, pour ressembler aux choses mêmes que possible avec keydown et keyup.

Voici un Démo

5
répondu Rohit416 2016-03-18 19:36:06

Essayez-vous d'imiter un clic sur un bouton lorsque vous appuyez sur la touche Entrée? Si c'est le cas, vous devrez peut-être utiliser la syntaxe trigger.

Essayez de changer

$('input[name = butAssignProd]').click();

À

$('input[name = butAssignProd]').trigger("click");

Si ce n'est pas le problème, essayez de regarder votre syntaxe de capture de clé en regardant les solutions dans ce post: jQuery Event Keypress: quelle touche a été pressée?

4
répondu Shaun 2017-05-23 12:34:48

Un Autre ajout à faire:

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

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

Mise à jour:

Encore plus efficace façon de le faire serait d'utiliser une instruction switch. Vous pouvez le trouver plus propre, aussi.

Balisage:

<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;
  }
});
3
répondu Daniel Dewhurst 2015-12-01 16:03:44

Incluez simplement la fonction preventDefault () dans le code,

       $("#txtSearchProdAssign").keydown(function (e) {
       if (e.keyCode == 13) {
       e.preventDefault();
       $('input[name = butAssignProd]').click();
        }
        });
0
répondu Arron 2017-03-08 11:22:54

Essayez Ceci

<button class="click_on_enterkey" type="button" onclick="return false;">
<script>
$('.click_on_enterkey').on('keyup',function(event){
  if(event.keyCode == 13){
    $(this).click();
  }
});
<script>
0
répondu Vishnu Prasad 2017-03-30 07:36:10

Cela semble être un comportement par défaut maintenant, il suffit donc de faire:

$("#press-enter").on("click", function(){alert("You `clicked' or 'Entered' me!")})

Vous pouvez l'essayer dans ce JSFiddle

Testé sur: Chrome 56.0 et Firefox (Dev Edition) 54. 0a2, tous deux avec jQuery 2.2.x et 3.x

-1
répondu xDaizu 2017-04-25 11:15:10