我正在使用http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/中的jQuery自动完成插件
当用户从下拉菜单中选择结果时,输入字段将成为焦点。我如何才能阻止插件执行此操作?
我使用这篇文章中的技巧使它起作用:jQuery autocomplete plugin not focusing the next clicked field
但这仅在用户使用鼠标选择结果时有效。这样,输入字段就不会得到关注。但是,当用户使用ENTER键或TAB键时,输入仍会成为焦点。

任何人都知道如何更改此设置,以便当用户从下拉列表中选择一个值时,输入字段d不会被聚焦?

提前非常感谢您!

问候,金

最佳答案

通过在插件的selectCurrent()函数中此行的外观:

$input.trigger("result", [selected.data, selected.value]);


...每当通过鼠标或键盘选择一个选项时,都会在自动完成输入上触发“结果”事件。

您可以绑定到同一事件,并将焦点放在表单中的下一个控件上(我认为这是您想要的,而不仅仅是从当前控件中删除焦点?):

$("input").bind("result", function () {

   // Get all controls on the form
   var controls = $(this).closest("form").find("input, textarea, select, button");

   // Find the index of the next control
   var nextIndex = controls.index(this) + 1;

   // Check if this is already the last control, so wrap around to the first one
   if (nextIndex >= controls.length) nextIndex = 0;

   // Put focus on the "next" control
   controls.eq(nextIndex).focus();

});

关于jquery - 从下拉列表中选择后,停止jQuery自动完成功能集中于输入字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3922393/

10-10 18:41
查看更多