0

我試圖用一個文本字段控制兩個jQuery autocomplete搜索。jQuery自動完成,將多個自動完成實例綁定到相同的文本輸入

我可以用下面的代碼添加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")但撤銷原有的功能。

任何人可以建議一種方法來設置第二個自動完成與撤消第一個?

回答

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); 
+0

這是有趣的,但我不知道如何將它應用到我的數據源是AJAX調用的情況。我不知道如何合併兩個AJAX調用。 – 2013-03-14 08:47:48

+0

執行另一個Ajax調用並將重新調用的數據合併到成功事件中的舊資源。 – 2013-03-14 11:01:45

+0

$阿賈克斯({ 網址://休息一下網址, 數據類型: 「JSONP」, 數據:{ 要素類: 「P」, 風格: 「完全」, maxRows進行:12, name_startsWith:請求。 (數據){ // getter var oldsource = $(「.selector」).autocomplete(「option」,「source」); var newsource = data; //一個新的json對象 //將其與舊來源合併 $ .merge(oldsource,newsource); // setter $(「.selector」).autocomplete(「option」,「source」,oldsource); })); }, }); – 2013-03-14 11:07:09