jQuery UI Autocomplete JSON gibt den Fehler: Uncaught TypeError: Kann 'in' Operator nicht verwenden, um nach '62' in zu suchen

8

Ich habe große Schwierigkeiten, Autocomplete zu bekommen, um auf meiner Seite zu arbeiten. Wenn ich zwei Zeichen ("OW") in meine Sucheingabe eingeben, bekomme ich das Preloader-Bild (siehe unten), aber es verschwindet nie und ich bekomme nie das Autocomplete-Popup. Betrachten Sie die Konsole in Chrome:

%Vor%

Hier ist die tatsächliche Zeichenfolge, die zurückgegeben wird (bestätigt durch Hinzufügen eines Alerts (Daten) im Erfolgsblock):

%Vor%

Hier ist der Hauptcode für die automatische Vervollständigung

%Vor%

Und schließlich, hier ist der Preloader (nur für den Fall, dass es verwandt ist).

%Vor%

Kann jemand helfen zu erklären, was hier vor sich geht?

    
ESDictor 19.02.2013, 20:12
quelle

4 Antworten

14

Es war ein langer Weg, aber nach vielen Stunden des Experimentierens kam ich auf diesen Code:

%Vor%

Dies scheint gut zu funktionieren. Die Wahrheit ist, dass meine Schlüsselwörter einzigartig sind, also kann ich ohne die ID sowieso leben.

    
ESDictor 20.02.2013, 17:52
quelle
8

ein wenig Hilfe, die nützlich sein kann:

Wenn Sie json verwenden, könnte es sein, dass das "json object" nicht geparst wird, oder Sie die Variable mit anderen tings überschrieben haben (wie das, was ich kürzlich doof gemacht habe).

für das erste Problem, stellen Sie sicher, dass Ihr Server "application / json" MIME-Typ, sonst verwenden Sie Header (für PHP)

Ich meine, in PHP, benutze das vor allem:

%Vor%     
Nereo Costacurta 28.01.2014 13:29
quelle
0

hier, wie Sie die Funktion für die Source-Eigenschaft

verwenden %Vor%

Die Antwortfunktion akzeptiert ein Array von JSON-Objekten

    
Mangesh Jadhav 05.08.2015 03:18
quelle
0

anstatt zu schreiben, ersetzen Sie data.keywords durch JSON.parse(data) in dieser Zeile: response($.map(data.keywords, function (item) { .

BR, Hazem

    
Hazem Fergany 07.10.2015 08:15
quelle