2010-05-19 179 views
2

即時通訊使用JQuerys自動填充插件,但輸入任何內容後都不會自動完成。JQuery自動填充問題

任何想法,爲什麼它不工作?基本的例子起作用,但不是我的。

var ppl = {"ppl":[{"name":"peterpeter", "work":"student"}, 
    {"name":"piotr","work":"student"}]}; 

var options = { 
    matchContains: true, // So we can search inside string too 
    minChars: 2,  // this sets autocomplete to begin from X characters 
    dataType: 'json', 
    parse: function(data) { 
     var parsed = []; 
     data = data.ppl; 
     for (var i = 0; i < data.length; i++) { 
      parsed[parsed.length] = { 
       data: data[i], // the entire JSON entry 
       value: data[i].name, // the default display value 
       result: data[i].name // to populate the input element 
      }; 
     } 
     return parsed; 
    }, 
    // To format the data returned by the autocompleter for display 
    formatItem: function(item) { 
     return item.name; 
    } 
}; 

$('#inputplace').autocomplete(ppl, options); 

好的。更新:

<input type="text" id="inputplace" /> 

因此,在輸入字段中輸入例如「彼得」的時候。沒有自動填充建議出現。它應該給「peterpeter」,但沒有任何反應。

還有一件事。使用這個例子完美地工作。

var data = "Core Selectors Attributes Traversing Manipulation CSS Events Effects Ajax Utilities".split(" "); 
$("#inputplace").autocomplete(data); 
+2

'var ppljson = eval(ppl);'爲什麼? 'ppl'已經是一個有效的JS對象。如果'ppl'是一個字符串(''{...}'')並且_needed_是'eval()',那麼它就會有意義。 – jensgram 2010-05-19 11:18:34

+0

是的,沒錯。刪除eval,但它仍然無法正常工作。任何想法? :) – heffaklump 2010-05-19 11:34:23

+0

那麼**完全**做「它不工作」是什麼意思?錯誤?瀏覽器崩潰?文字向後退出?你在這裏沒有幫助我們。 – Pointy 2010-05-19 11:36:30

回答

3

那麼,看看該插件中的代碼,「解析」選項看起來像只有當數據被AJAX調用檢索時才調用。作爲一個實驗,你可能會嘗試傳遞數據,以至於你不需要它:

var ppl = [{"name":"peterpeter", "work":"student"}, 
{"name":"piotr","work":"student"}]; 
+0

Ooooh,那就是爲什麼。是的,用您的ppl版本進行嘗試,並拿走了解析功能,現在它可以工作! :DD是的!非常感謝! – heffaklump 2010-05-19 14:05:10

+0

好吧,那太好了!當然,如果你最終*使用Ajax回調,你可以恢復你的「解析」處理程序。 (當你沒有做Ajax的時候,我認爲它不會讓任何東西成爲其中的一部分,如果這樣做有助於測試。) – Pointy 2010-05-19 14:35:31