我正在使用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/