Bekijk de jQuery ui autocomplete documentatie . De JSON die u retourneert, komt niet overeen met wat de autocomplete zoekt. Het object dat u retourneert, moet eigenschappen hebben met de naam label of value (of beide).
Je kunt de volgende opties proberen:
Optie 1:Wijziging geretourneerde JSON
Wijzig de JSON die wordt geretourneerd om de label/waarde-eigenschappen op te nemen, zoals:
[{"label":"Sin City"}]
Uit de voorbeelden blijkt ook de eigenschap id te gebruiken. Ik geloof dat het bovenstaande de minimumvereiste is voor automatisch aanvullen om een lijst met waarden weer te geven. Ik denk dat je ook een array met strings kunt retourneren en dat deze op precies dezelfde manier wordt weergegeven als hierboven.
[ "Sin City", "Etc" ]
Optie 2:Wijzig de privé _render-functie
Wijzig de private _renderItem-functie voor automatisch aanvullen om uw aangepaste eigenschappen te gebruiken, zoals weergegeven in dit voorbeeld automatisch aanvullen (niet getest):
$( "#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 );
};
Dit is een beetje flexibeler, maar veel lelijker imho.