在焦点上打开jQuery UI ComboBox

我有一个jQuery ComboBox输入,当聚焦时我想自动打开自动完成菜单。

但是,只需清除输入并将其聚焦如下:

$('#select-id').val('').focus(); 

……不起作用。 如果您手动对焦自动完成输入然后清除它,它会显示自动完成菜单。

有没有办法可以触发自动完成菜单打开焦点? 我也希望它显示完整的菜单,所以我也想清除输入文本。

假设您正在使用combobox,它是自动完成小部件的扩展:

 $("your_selector").bind("focus", function () { this.value = ''; $(this).autocomplete("search", ''); }); 

应该工作正常。

工作示例 (普通自动完成小部件): http : //jsfiddle.net/gEuTV/

如果你对jqueryuicombobox的每个实例都需要这个function,不仅对于特定的选择器,你可以把它放在$(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按钮的function,在焦点上触发它。 这使得不必为每个语句创建单独的绑定,并且可以在您拥有的每个combobox上工作。