2016-09-23 4 views
0

Ich versuche JQuery die automatische Vervollständigung zu verwenden, und ich bekomme diese Fehlermeldung:JQuery Autocomplete json Parse-Fehler

Uncaught SyntaxError: Unexpected token < in JSON at position 2 

Mein Code wie diese, die 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> 

Die javascript:

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

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

        }}); 

Ich habe keine Ahnung warum aber source zu lookup geändert hat es funktioniert

+0

dieses Problem ist mir vertraut, sind Sie sicher, dass Sie nicht irgendwo PHP in Ihrem Code irgendwo verwenden? – mondersky

+0

Ja, ich denke, vielleicht ist die Quelle nicht gut – dasdasd

+0

Wechseln Sie zu "Lookup" und in Ihrem JSON überprüfen, dass ihre keine leeren Werte ist – dasdasd

Antwort

1

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

Die Autovervollständigung erwartet ein Array im obigen Format. Ändern Sie Ihr Array zu den folgenden:

<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

Ich versuchte es und bekam den gleichen Fehler – dasdasd

+0

Hier ist ein JSFiddle Link mit Arbeitscode. https://jsfiddle.net/9roepp5z/1/ Sie können die Struktur verwenden, die Sie hatten, aber das Dropdown-Feld verwendet Ihre Datenspalte für die Anzeige und die Wertespalte für das, was sie bei der Auswahl in das Textfeld platziert. Sie hatten ein unnötiges schließendes INPUT-Tag. – KeyOfJ

+0

Danke mein Problem waren einige libs die ich benutzt habe ... – dasdasd