20

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

我的代码:

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

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

4

3 回答 3

53

搜索方法应该可以解决问题:

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

小提琴

于 2012-12-03T15:33:38.817 回答
4

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

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 自动完成演示站点上的组合框示例的源代码中找到(第 127-141 行)。

于 2012-12-03T15:29:04.850 回答
1

For https://github.com/devbridge/jQuery-Autocomplete, you can use:

$('input#mainSearchBox').autocomplete("getSuggestions", $('input#mainSearchBox').val())
于 2018-04-23T07:58:36.447 回答