Ta en titt på dokumentationen för jquery ui autocomplete . JSON du returnerar matchar inte det autoslutförandet söker efter. Objektet du returnerar måste ha egenskaper som heter etikett eller värde (eller båda).
Du kan prova följande alternativ:
Alternativ 1:Ändra returnerad JSON
Ändra JSON som returneras till att inkludera etikett/värdeegenskaper som:
[{"label":"Sin City"}]
Från exemplen verkar det också använda egenskapen id. Jag tror att ovanstående är minimikravet för att autoslutförande ska visa en lista med värden. Jag tror att du också kan returnera en rad strängar och den kommer att återge den på exakt samma sätt som ovan.
[ "Sin City", "Etc" ]
Alternativ 2:Ändra privat _render-funktion
Ändra den privata _renderItem-funktionen för autoslutförandet för att använda dina anpassade egenskaper som visas i detta exempel på autokomplettering (otestad):
$( "#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 );
};
Detta är lite mer flexibelt men mycket fulare imho.