如何让 jQuery 插件像 Google 一样自动完成替换结果?

How to make the jQuery plugin Autocomplete like Google replace results?

我正在为两个表单字段使用 jQuery 插件 Autocomplete like Google -- foobar(取决于 foo):

$(function() {
    $("#foo").autocomplete({
        minLength: 3,
        limit: 5,
        source : [{
            url:"/my/ajax/controller/foo?data[foo_number]=%QUERY%",
            type:'remote'
        }],  
    });
});

$(function() {
    $("#bar").autocomplete({
        minLength: 3,
        limit: 5,
        source : [
            function(query, add) {
                fooNumber = $('#foo-number').val();
                $.getJSON("/my/ajax/controller/bar?data[number]=" + query + "&data[foo_name]=" + fooNumber, function(response) {
                    add(response);
                })
        }],  
    });
});

它基本上可以工作,但是字段 bar 有问题。自动完成 AJAX 请求的每个进一步结果都会 添加 到最后一个,并且不会 替换 它。这导致 1. 重复的 antries 和 2. 过时的条目,例如当前 AJAX 请求未获得任何新结果,并显示为上次请求检索的列表。

我的代码有什么问题? 如何每次只获取尚未检索到的结果?

我需要的选项调用 appendMethod:

$(function() {
    $("#bar").autocomplete({
        minLength: 3,
        limit: 5,
        appendMethod:'replace',
        source : [
            function(query, add) {
                fooNumber = $('#foo-number').val();
                $.getJSON("/my/ajax/controller/bar?data[number]=" + query + "&data[foo_name]=" + fooNumber, function(response) {
                    add(response);
                })
        }],  
    });
});