jQuery和ASP.NET-强制按钮单击

jQuery和ASP.NET-强制按钮单击,asp.net,javascript,jquery,Asp.net,Javascript,Jquery,我有一个ASP.NET页面,上面有一个表单。它上面还有一个搜索表单。搜索位于页面的右上角,因此搜索按钮首先添加到控件层次结构中 当您处理其他表单并按enter键时,它将单击搜索按钮。我不希望出现这种情况,我更希望当您按enter键时,表单的按钮被单击 我试着像这样使用jQuery: $('#textBoxId').keyup(function(e) { if(e.keyCode === 13) { $('#buttonId').click(); e.preventDefau

我有一个ASP.NET页面,上面有一个表单。它上面还有一个搜索表单。搜索位于页面的右上角,因此搜索按钮首先添加到控件层次结构中

当您处理其他表单并按enter键时,它将单击搜索按钮。我不希望出现这种情况,我更希望当您按enter键时,表单的按钮被单击

我试着像这样使用jQuery:

$('#textBoxId').keyup(function(e) {
  if(e.keyCode === 13) { 
    $('#buttonId').click();
    e.preventDefault();
  }
});
但是表单提交了,这意味着客户端验证没有运行(即,onclick事件处理程序没有在按钮上运行)

实现这一目标的最佳方法是什么?

试试这个

$('#textBoxId').keydown(function(e) {
  if(e.keyCode === 13) {
    e.preventDefault(); 
    $('#buttonId').trigger('click');
  }
});

此代码适用于IE和FF:

$('#textBoxId').keydown(function(event) {
    var e = event || window.event;
    var keyCode = document.all ? e.keyCode : e.which;

    if (keyCode == 13) {
        e.preventDefault();
        $('#buttonId')[0].click();
    }
});
需要记住的重要一点是,对的jQuery调用只调用绑定到click事件的所有处理程序。它不调用底层html对象的click()方法。这必须通过按照if语句中的最后一行从jQuery数组中提取元素来手动完成