我有一个ASP.NET页面,上面有一个表单。它上面还有一个搜索表单。搜索位于页面的右上角,因此搜索按钮首先添加到控件层次。
当您正在处理其他表单并按Enter键时,将单击搜索按钮。我不希望这样,我希望当你按下输入时,单击该表单的按钮。
我尝试使用这样的jQuery:
$('#textBoxId').keyup(function(e) {
if(e.keyCode === 13) {
$('#buttonId').click();
e.preventDefault();
}
});
但提交的表单,意味着客户端验证没有运行(即onclick事件处理程序没有在按钮上运行)。
实现这一目标的最佳方式是什么?
答案 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数组中提取元素来手动完成。