188

我需要在按下回车键时执行一个按钮单击事件。

因为目前事件没有触发。

如果可能,请帮助我使用语法。

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

这是我尝试在输入时触发点击事件。

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

13 回答 13

344

试试这个....

$('#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>


在 jsbin.com 中查找 Demo

于 2013-08-10T09:11:48.307 回答
30

尝试这个

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

希望对你有帮助

于 2013-08-10T09:12:59.957 回答
15
$('#txtSearchProdAssign').keypress(function (e) {
  if (e.which == 13) {
    $('input[name = butAssignProd]').click();
    return false;  
  }
});

我还刚刚发现在“Enter”上提交表格,它全面涵盖了大部分问题。

于 2013-08-10T09:08:51.723 回答
8

你快到了。这是您可以尝试的方法。

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

我曾经在insted 的事件trigger()上执行单​​击并将其绑定,因为事件实际上由两个事件组成,即then 。因此,使用and尽可能地相似事物。keyupkeydownclickmousedownmouseupkeydownkeyup

这是一个演示

于 2013-08-10T09:15:11.270 回答
6

另一个补充:

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

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

更新:

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

标记:

<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;
  }
});
于 2015-09-08T09:52:29.763 回答
3

当按下回车键时,您是否试图模仿单击按钮?如果是这样,您可能需要使用trigger语法。

尝试改变

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

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

如果这不是问题,那么请尝试通过查看这篇文章中的解决方案来再次查看您的键捕获语法:jQuery Event Keypress:按下了哪个键?

于 2013-08-10T09:05:07.100 回答
3

只需在代码中包含 preventDefault() 函数,

$("#txtSearchProdAssign").keydown(function (e) 
{
   if (e.keyCode == 13) 
   {
       e.preventDefault();
       $('input[name = butAssignProd]').click();
   }
});
于 2017-03-08T11:22:54.700 回答
1

尝试这个

<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>
于 2017-03-30T07:36:10.717 回答
1

Jquery: Fire Button click event Using enter Button Press try this::

tabindex="0" onkeypress="return EnterEvent(event)"

 <!--Enter Event Script-->
    <script type="text/javascript">
        function EnterEvent(e) {
            if (e.keyCode == 13) {
                __doPostBack('<%=btnSave.UniqueID%>', "");
            }
        }
    </script>
    <!--Enter Event Script-->
于 2019-02-18T10:11:22.450 回答
1

您可以使用此代码

$(document).keypress(function(event){
    var keycode = (event.keyCode ? event.keyCode : event.which);
    if(keycode == '13'){
       alert('You pressed a ENTER key.');
    }
});
于 2019-09-23T10:34:22.787 回答
1

这是我的首选解决方案。

    $("#text").keyup(function(event) {
        if (event.which === 13) {
            $("#submit").click();
        }
    });

超级简单,超级 jQuery。

于 2021-09-15T02:37:46.457 回答
0

     $('#Search').keyup(function(e)
        {
            if (event.keyCode === 13) {
            e.preventDefault();
            var searchtext = $('#Search').val();
            window.location.href = "searchData.php?Search=" + searchtext + '&bit=1';
            }
        });

于 2020-02-03T08:30:46.793 回答
-4

现在这似乎是默认行为,所以这样做就足够了:

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

你可以在这个 JSFiddle 中试试

测试:Chrome 56.0 和 Firefox (Dev Edition) 54.0a2,都带有 jQ​​uery 2.2.x 和 3.x

于 2017-04-05T08:24:00.573 回答