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

时间:2009-01-30 00:38:12

标签: asp.net javascript jquery

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

当您正在处理其他表单并按Enter键时,将单击搜索按钮。我不希望这样,我希望当你按下输入时,单击该表单的按钮。

我尝试使用这样的jQuery:

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

但提交的表单,意味着客户端验证没有运行(即onclick事件处理程序没有在按钮上运行)。

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

2 个答案:

答案 0 :(得分:8)

试试这个。

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

答案 1 :(得分:1)

此代码适用于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();
    }
});

要记住的重要一点是,对click()的jQuery调用只调用绑定到click事件的所有处理程序。它不会调用底层的html对象的click()方法。这必须通过根据if语句中的最后一行从jQuery数组中提取元素来手动完成。