Jquery Chosen – 防止按下按键

我有一个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键,则会按预期触发监听器。

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

我可以看到Jquery选择在keypress事件中使用e.preventDefault(),所以它不允许执行你的代码。 应该有一些function可以覆盖以实现您的目标,或者您可以获得e.preventDefault()。

两件事情:

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

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

使用.on()代替:

 $(".div_search_fields").on("keypress", function(e) { . . . });