如何判断是否从JQuery UI自动完成中选择了一个建议

Mar*_*son 6 jquery jquery-ui autocomplete jquery-autocomplete jquery-ui-autocomplete

我有一个连接到JQuery UI Autocomplete的文本框.当用户在框中输入时,我的搜索通过ajax调用运行并返回建议.似乎有三件事情可能发生:

  1. 自动填充建议选项,用户选择其中一个
  2. 自动填充建议选项,但用户选择不选择任何选项
  3. 自动完成功能无法提出建议 - 不匹配(因此建议列表不会显示)

处理上述所有情况,如何判断用户是否从自动填充中选择了一个选项?

当搜索开始(匹配=假)和选择发生(匹配=真)时,我已经研究了标记标记,但这似乎不是一种非常简洁的做事方式.

And*_*ker 13

您可以使用select@bfavaretto这样的事件指出,但我认为在这种情况下使用该change事件更方便:

$("#auto").autocomplete({
    source: ['hi', 'bye', 'foo', 'bar'],
    change: function(event, ui) {
        if (ui.item) {
            $("span").text(ui.item.value);
        } else {
            $("span").text("user picked new value");
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

示例: http ://jsfiddle.net/andrewwhitaker/3FX2n/

change当字段模糊时触发,但与本机change事件不同,您将获得有关用户是否单击事件的信息(ui.item如果用户未单击建议,则为null).