2017-04-27 130 views
0

我的代碼:jQuery的自動完成功能不顯示結果

$("#town").autocomplete({ 
    source: function(request, response){ 
     $.ajax({ 
      url: 'url', 
      type: 'GET', 
      dataType: 'json', 
      data:{ 
       type : "towns", 
       mode: "titles", 
       limit: 20, 
       q: request.term 
      }, 
      success: function(data){ 
       console.log(data); 
       response(data); 
      }, 
     }); 
    }, 

數據是JSON對象。我在json_encode(array)之後從php獲取它。如果我寫了一些字母,我會有帶值的json數組,但不顯示工具提示。哪裏不對? jQuery的1.11.3,jQuery的UI 1.11.4 的console.log(數據)返回:

Object {query: "Mi", suggestions: Array(4)} 
query: "Mi" 
suggestions : Array(4) 
0 :"Minsk" 
1: "Mir" 
2:"Mikhailovo" 
3:"Miroslavl" 

UPD

$("#town").autocomplete({ 
    source: [ "c++", "java", "php", "coldfusion", "javascript", "asp", "ruby" ] 
}); 

沒有工作過。包括jquery和jquery ui。 Concole很清楚。

+0

那麼,網址在哪裏?你能不能展示被稱爲的行動? –

+0

這是我的本地網址。它效果很好。我不認爲在php中的問題,因爲console.log顯示正確的數據。 – Dev

+0

console.log顯示什麼?你沒有提供足夠的信息。如果日誌不起作用,則問題出在url方法中。 –

回答

0

我不認爲你提供的數據是自動完成所期望的正確格式。您不能只提供任何舊數據並期望它理解 - 響應數據必須與插件接受的格式之一匹配。

作爲每文檔在http://api.jqueryui.com/autocomplete/#option-source

有兩種支持格式:

字符串數組:[ "Choice1", "Choice2" ]

對象數組與標籤和value屬性:[ { label: "Choice1", value: "value1" }, ... ]

您需要修改服務器端代碼以suppl Ÿ允許的格式之一中的數據,或者(效率較低),您可以在調用「響應」回調之前在「成功」函數內對客戶端進行重構。

+0

我改變了成功函數:'data = [「C++」,「java」,「php」,「coldfusion」,「javascript」,「asp」,「ruby」]; response(data)'like like example在文檔中,但它沒有幫助您的控制檯中的任何錯誤 – Dev

+0

?你確定有一個ID爲「town」的文本框,在你運行自動完成命令(或者:自動完成命令在「document.ready」塊內)時聲明_before_?如果您向我們展示更多代碼,它可能會有所幫助。 – ADyson

+0

完成所有條件。我認爲版本中存在問題。我有jQuery 1.11.3和UI 1.11.4並通過CDN使用它們。然後我從官方網站下載了ui 1.11.4.zip,我發現他們使用的是jquery 10.6。 – Dev