手动触发jQuery自动完成

我正在使用jQuery UI Autocomplete和一些AJAX(直到他们停止输入后才会提取数据)。 我想这样做,一旦找到数据,自动完成将弹出作为搜索结果。 这是有效的,但是只有当我再次开始输入时(在我输入之前,下拉列表不会触发,因为直到我停止输入后它才会被初始化)。

我的代码:

var availableTags = [ "Perl", "PHP", "Python", "Ruby" ]; $('input#mainSearchBox').autocomplete({ source: availableTags, minLength: 0 }); $('input#mainSearchBox').data('autocomplete').menu.active; 

最后一部分是尝试激活自动完成,但失败了。

搜索方法应该做的伎俩:

 $('input#mainSearchBox').autocomplete("search"); 

小提琴

您可以使用以下脚本手动切换自动完成:

 var textbox = $('input#mainSearchBox'); var autocompleteBox = textbox.autocomplete('widget'); // toggle the autocomplete widget autocompleteBox.is(':hidden') ? textbox.autocomplete('search', textbox.val()).focus() : autocompleteBox.hide(); 

此代码可以在jquery自动完成演示站点上的combobox示例的源代码中找到(第127-141行)。

对于https://github.com/devbridge/jQuery-Autocomplete ,您可以使用:

 $('input#mainSearchBox').autocomplete("getSuggestions", $('input#mainSearchBox').val())