Sehen Sie sich die Dokumentation zur automatischen Vervollständigung der jquery-Benutzeroberfläche an . Der JSON, den Sie zurückgeben, stimmt nicht mit dem überein, wonach die automatische Vervollständigung sucht. Das zurückgegebene Objekt muss Eigenschaften namens label oder value (oder beides) haben.
Sie können die folgenden Optionen ausprobieren:
Option 1:Zurückgegebenes JSON ändern
Ändern Sie das zurückgegebene JSON so, dass es die Bezeichnungs-/Werteigenschaften enthält, wie z. B.:
[{"label":"Sin City"}]
Aus den Beispielen scheint es auch die Eigenschaft id zu verwenden. Ich glaube, das Obige ist die Mindestanforderung für die automatische Vervollständigung, um eine Liste von Werten anzuzeigen. Ich denke, Sie können auch ein Array von Strings zurückgeben und es wird auf genau die gleiche Weise wie oben gerendert.
[ "Sin City", "Etc" ]
Option 2:Private _render-Funktion ändern
Ändern Sie die Funktion private _renderItem für die automatische Vervollständigung so, dass Ihre benutzerdefinierten Eigenschaften verwendet werden, wie in diesem Beispiel für die automatische Vervollständigung
$( "#project" ).autocomplete({
source: "./search.php",
minLength: 3
})
.data( "autocomplete" )._renderItem = function( ul, item ) {
return $( "<li></li>" )
.data( "item.autocomplete", item )
.append( item.Title )
.appendTo( ul );
};
Das ist ein bisschen flexibler, aber imho viel hässlicher.