2015-09-11 18 views
0

我與蟒蛇創建返回該函數:自動完成的jQuery不能打印建議

callback({"query": "can", "suggestions": "['Cane','Canal','Candy','Canis','Canoe','Canada','Canary','Canola','Cantil','Decane','Toucan','Candida','Candiru','Candoia','Canidae','Cannula','Indican','Pelican','Scanner','Acanthis','']", "data": "['Cane','Canal','Candy','Canis','Canoe','Canada','Canary','Canola','Cantil','Decane','Toucan','Candida','Candiru','Candoia','Canidae','Cannula','Indican','Pelican','Scanner','Acanthis','']"}); 

我想使用的devbridge https://www.devbridge.com/sourcery/components/jquery-autocomplete/

自動完成我設法用這樣的阿賈克斯以獲取列表:

$.ajax({ 
    url: url, 
    dataType:"jsonp", 
    jsonpCallback: 'callback', 

    success: function(data) { 
     alert(data.suggestions); 

      } 
    }); 

但我不能讓它與自動完成一起工作。我改變了我的函數返回到回調,因爲我有跨域URL的問題,這也是我用jsonp的原因。我也試圖data.suggestions添加到一個數組

   var availableTags = data.suggestions; 
      var stri = availableTags.replace(/["']/g, ""); 
      availableTags = stri.replace("[",""); 
      stri = availableTags.replace("]",""); 
      suggestionsArray = stri.split(","); 

,並打印在jQuery的是這樣的:

$("#query").autocomplete({ 
    lookup: suggestionsArray 
}); 

,但它無法正常工作。如果我用手創建它

var suggestionsArray = ["cane","Canal"] 

它正在工作。請幫忙。

回答

0

您提到的教程顯示了將數據源提供給自動完成對象的兩種方法。

你想要AJAX,所以你應該這樣使用它。從該網站相關的例子:

$('#autocomplete').autocomplete({ 
    serviceUrl: '/autocomplete/countries', 
    onSelect: function (suggestion) { 
     alert('You selected: ' + suggestion.value + ', ' + suggestion.data); 
    } 
}); 

所以,你不應該initialazing自動完成時使用查找財產,但你應該初始化的serviceUrl財產。 這也將處理AJAX調用,您不必關心這一點。

在返回的JSON字符串中,還需要確保data.suggestions數組包含數組元素,該元素應該具有值和數據屬性。

+0

我按照你所說的創建了這個數組,但是它仍然不會在自動完成中使用prin。所以我認爲問題在別的地方 – user1431148

+0

我會編輯答案 – SalDev