我有一个JavaScript叠加层,它包含多个输入文本搜索条件。当用户在任何输入中按输入键时,我想模仿搜索按钮的行为。
如果只有一个输入,我知道如何处理回车键。我将输入定义为:
<input type=\"text\" class=\"txtOrgNmFilter inputBox\" onkeyup=\"ClientsListControl.onFilterKeyup(event);\" />
并在onFilterKey up
onFilterKeyup: function(event) {
if (event.keyCode == 13) {
$(".txtOrgNmFilter").click();
}
}
我的问题如下:如果我有几个输入文本,是否需要在所有输入文本中添加onKeyUp
属性,或者是否有更简单的方法(类似于表单提交操作)?
我的叠加层是一张表
答案 0 :(得分:7)
$('input').bind('keypress',function (event){
if (event.keyCode === 13){
$(this).trigger('click');
}
});
使用此功能,您可以将同一事件绑定到所有输入(如果需要,可以过滤更多),当有人点击“输入”并关注某些输入时,它会触发“点击”事件。
答案 1 :(得分:0)
将事件处理程序附加到容器(表)。然后你可以得到实际按下键的元素(在prototype.js中,使用Event.findElement,但我确定其他库有类似的方法)并且让一大堆逻辑依赖于它和按下的键。
答案 2 :(得分:0)
您是否只能添加一个form
元素,您可以在其中定义input
?这样,当用户在其中一个输入字段中按 Enter 时,浏览器将默认提交表单。
如果您想自己处理搜索(例如,使用AJAX),您可以捕获表单的submit
事件并执行所需的操作。这样做,如果JavaScript以某种方式不可用,您的表单仍然有用。