jquery ui .autocomplete()在blur()后输入相同的字母时不触发

mon*_*onn 8 jquery jquery-ui

示例代码:http://jsbin.com/etaziy(使用http://jqueryui.com/demos/autocomplete/)

如果你输入'j',你会得到3个名字,'John''Jack'和'Joe'.如果你模糊了,我清除输入,只需输入val('').然后,如果你回到输入,并再次输入'j',没有任何反应?直到你键入第二个匹配的字母才能显示弹出窗口.

我的例子可能看起来有点奇怪,但实质上这是我正在努力的一个真正削减的版本.我需要在blur()之后清除输入,并在选择后清除它.这样做会使后续选择看起来很麻烦.

我部分认为这是有意的功能,但出于我的目的,它不是我想要的.我确实需要弹出列表,只要输入任何字母就会显示.

干杯.

Ceb*_*yre 11

问题是自动完成会在内部跟踪它匹配的值,因此当您第一次键入时,j它将此内部值设置为"j",然后当您将输入更改为时,它不会重置为空字符串空.

在查看自动完成源后,我无法找到如何直接访问内部变量,但是您可以强制自动完成功能通过在您将输入更改为空后运行其他搜索来为您更新它(并且长度为零,它实际上不会进行搜索).

$(function() {
    $("#search").autocomplete({
                source: data,
                change: function() { // Triggered when the field is blurred, if the value has changed; ui.item refers to the selected item.
                        $("#search").val("");
                        $("#search").autocomplete("search", "");    //THIS IS THE NEW LINE THAT MAKES IT HAPPY
                }
        });
});
Run Code Online (Sandbox Code Playgroud)