我有一个jQuery ComboBox输入,在聚焦时我想自动打开自动完成菜单。
然而,只需清除输入并将其聚焦如下:
$('#select-id').val('').focus();
......不起作用。如果您手动对焦自动完成输入然后清除它,它会显示自动完成菜单。
有没有办法可以触发自动完成菜单以便在焦点上打开?我也希望它显示完整的菜单,所以我也想清除输入文本。
答案 0 :(得分:8)
假设您正在使用组合框,它是自动完成小部件的扩展名:
$("your_selector").bind("focus", function () {
this.value = '';
$(this).autocomplete("search", '');
});
应该可以正常工作。
工作示例(普通自动填充小部件):http://jsfiddle.net/gEuTV/
答案 1 :(得分:0)
如果你对jqueryui组合框的每个实例都需要这个功能,不仅对于特定的选择器,你可以将它放在$(widget(“custom-combobox”,{statement)中 (它的好地方是_createShowAllButton上方或下方)
_showAll: function()
var input = this.input,
wasOpen = false;
$(input)
.focus(function() {
wasOpen = input.autocomplete("widget").is(":visible");
});
.click(function() {
input.focus(); // this fires the call above.
// Close if already visible
if (wasOpen) {
return;
}
input.autocomplete("search", "");
});
},
这简单地复制了show all按钮的功能,在焦点上触发它。这使得不必为每个语句创建单独的绑定,并且可以在您拥有的每个组合框上工作。