Jquery:按Enter键如何触发click事件

Ari*_*ule 149 jquery key-events

我需要在按下回车键时执行按钮点击事件.

因为目前事件没有解雇.

如果可能的话,请帮我解释一下语法.

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

这是我尝试在输入时触发click事件.

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

Vij*_*jay 283

试试这个....

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

$(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;
    }
  });

});
Run Code Online (Sandbox Code Playgroud)
<!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>
Run Code Online (Sandbox Code Playgroud)


在jsbin.com上找到演示

  • 如果人们想从任何地方识别“输入”按键,您可以替换 $('#txtSearchProdAssign') 并在文档 $(document).keypress 上触发......。 (4认同)

Nee*_*bey 25

试试这个

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

希望它能帮到你

  • 你是说`if((event.keyCode || event.which)== 13)`?是的,它是完全跨浏览器,支持FF中的`Tab`键. (4认同)

gee*_*hic 12

$('#txtSearchProdAssign').keypress(function (e) {
  if (e.which == 13) {
    $('input[name = butAssignProd]').click();
    return false;  
  }
});
Run Code Online (Sandbox Code Playgroud)

我还发现在"回车"上提交一份表格,全面涵盖了大部分问题.


Roh*_*416 7

你快到了.这是你可以尝试的.

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

我已经习惯trigger()执行点击并将其绑定在keyup事件上,keydown因为click事件实际上包括两个事件,即mousedown然后mouseup.因此,尽可能使用keydownkeyup.

这是一个演示


Dan*_*rst 6

另一个补充:

如果您要动态添加输入,例如使用append(),则必须使用 jQueryon()函数。

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

更新:

一种更有效的方法是使用 switch 语句。你也可能会发现它更干净。

标记:

<div class="my-form">
  <input id="my-input" type="text">
</div>
Run Code Online (Sandbox Code Playgroud)

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;
  }
});
Run Code Online (Sandbox Code Playgroud)

  • IMO 对单个条件使用 switch 语句是矫枉过正的。 (2认同)
  • 我不相信你。你能引用一个来源吗? (2认同)

小智 5

这是我的首选解决方案。

    $("#text").keyup(function(event) {
        if (event.which === 13) {
            $("#submit").click();
        }
    });
Run Code Online (Sandbox Code Playgroud)

超级简单,超级 jQuery。