如何处理Javascript叠加中的输入键?

时间:2010-10-28 16:46:42

标签: javascript jquery

我有一个JavaScript叠加层,它包含多个输入文本搜索条件。当用户在任何输入中按输入键时,我想模仿搜索按钮的行为。

如果只有一个输入,我知道如何处理回车键。我将输入定义为:

<input type=\"text\" class=\"txtOrgNmFilter inputBox\" onkeyup=\"ClientsListControl.onFilterKeyup(event);\" />

并在onFilterKey up

onFilterKeyup: function(event) {
    if (event.keyCode == 13) {
        $(".txtOrgNmFilter").click();
    }
}

我的问题如下:如果我有几个输入文本,是否需要在所有输入文本中添加onKeyUp属性,或者是否有更简单的方法(类似于表单提交操作)?

我的叠加层是一张表

3 个答案:

答案 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以某种方式不可用,您的表单仍然有用。