1

我有一个 div (id = div_search_fields),其中有几个 jQuery Chosen 下拉菜单。附加到 div 我有一个按键捕获侦听器,如果按下的键是 Enter 键,则通过单击隐藏的提交按钮提交所选内容。

$("#div_search_fields").keypress(function(e) {
    if (e.which == 13) {
        $("#hiddenSubmitButton").click();
    }
});

由于某种原因,如果我刚刚在所选下拉列表之一中选择了一个选项,则永远不会调用此侦听器。在“div_search_fields”DIV 中,我还有一个简单的文本输入框,如果我刚刚在其中输入了文本,然后按 Enter 键,侦听器将按预期触发。

这一定与关注选择下拉菜单有关,但我无法理解为什么?有任何想法吗?

4

2 回答 2

1

两件事情:

  1. 如果下拉列表中的输入是在绑定按键事件后动态生成的,则该事件不会绑定到这些元素。

  2. ID 对一个元素应该是唯一的。如果要将操作绑定到多个元素,请改用类。

使用 .on() 代替:

$(".div_search_fields").on("keypress", function(e) { . . . });
于 2012-10-11T13:42:10.970 回答
1

据我所知,选择的 Jquery 在按键事件中使用 e.preventDefault() ,因此它不允许执行您的代码。应该有一些功能可以覆盖以实现您的目标,或者您可以使用 e.preventDefault()。

于 2012-10-11T14:09:35.913 回答