jQuery自动完成,将多个自动完成实例绑定到同一文本输入

时间:2013-03-14 06:11:37

标签: javascript jquery jquery-ui autocomplete jquery-autocomplete

我尝试使用单个文本字段控制两个jQuery autocomplete次搜索。

我可以使用以下代码将jQuery autocomplete添加到输入中:

    $("search-input").bind("autocompleteselect", jQuery.proxy(function (event, ui) {
      //List element select callback
    }, this)).autocomplete({
        appendTo:"#result-list-1",
        source: function (request, response) {
            $.ajax({
                url://some rest url,
                dataType: "jsonp",          
                data: {
                    featureClass: "P",
                    style: "full",
                    maxRows: 12,
                    name_startsWith: request.term
                },    
                success: function (data) {
                       alert("fb sucess"); 
                    response($.map(data.data, function (item) {
                     //data mapping instructions
                    }));
                },
            });
        }
    }).data("autocomplete")._renderItem = jQuery.proxy(function (ul, item) {
        return $("<li></li>").data("item.autocomplete", item).append("some html to append").appendTo(ul);
    })
}

当我尝试第二次将此$("search-input")应用于自动完成功能的其他参数时,它可以工作,但它会撤消原始功能。

任何人都可以建议一种方法来设置第二个自动完成而不撤消第一个吗?

1 个答案:

答案 0 :(得分:0)

// getter
var oldsource = $( ".selector" ).autocomplete( "option", "source" );

var newsource = [ "c++", "java", "php", "coldfusion", "javascript", "asp", "ruby" ]; //A new json object


//Merge it with old source
$.merge(oldsource, newsource);

// setter
$( ".selector" ).autocomplete( "option", "source", oldsource);
相关问题