2016-09-23 85 views
0

我嘗試使用jQuery自動完成,我得到這個錯誤:JQuery的自動完成JSON解析錯誤

Uncaught SyntaxError: Unexpected token < in JSON at position 2 

我的代碼是這樣的,HTML:

<div id="fastSearchBox" class="fastSearchBox"> 
      <span style="direction: rtl; float: right;">search</span> 
      <input id="fastSearchInput" type="text" style="width: 150px; margin-right: 10px;"></input> 
     </div> 

的JavaScript:

users = [{"data":1,"value":"foo"}]; 

        $("#fastSearchInput").autocomplete({ 
        source: users, 
        select: function (event, ui) 
        { 

        }}); 

我不知道爲什麼,但更改sourcelookup使其工作

+0

此問題對我來說很熟悉,您確定您沒有在代碼中使用某些PHP嗎? – mondersky

+0

是的,我想也許來源不好 – dasdasd

+0

更改爲「查找」,並在您的JSON檢查,他們是沒有空值 – dasdasd

回答

1

An array of objects with label and value properties: [ { label: "Choice1", value: "value1" }, ... ]

自動完成需要上述格式的數組。將您的陣列更改爲以下內容:

<body> 
    <div id="fastSearchBox" class="fastSearchBox"> 
    <span style="direction: rtl; float: right;">search</span> 
    <input id="fastSearchInput" type="text" style="width: 150px; margin-right: 10px;"> 
    </div> 
</body> 

var users = [ 
    {data: 1, value: "foo" }, 
    {data: 2, value: "foo2" }, 
    {data: 3, value: "foo3" } 
]; 

$("#fastSearchInput").autocomplete({ 
    source: users 
}); 

$("#fastSearchInput").on("autocompleteselect", function(event, ui) { 
    alert(ui.item.data); 
}); 
+0

我試過了,得到了相同的錯誤 – dasdasd

+0

這是一個工作代碼的jsfiddle鏈接。 https://jsfiddle.net/9roepp5z/1/ 您可以使用您有的結構,但下拉列表使用您的數據列作爲顯示值,而值列則用於選擇時放入文本框的內容。你確實有一個不必要的關閉INPUT標籤。 – KeyOfJ

+0

謝謝我的問題是我用過的一些庫... – dasdasd