2016-09-23 39 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