jquery autocomplete renderItem
Ho il seguente codice. Non genera alcun js errori. Non può ottenere il completamento automatico per visualizzare tutti i risultati:
$(function() {
$.ajax({
url: "data.xml",
dataType: "xml",
cache: false,
success: function (xmlResponse) {
var data_results = $("Entry", xmlResponse).map(function () {
return {
var1: $.trim($("Partno", this).text()),
var2: $.trim($("Description", this).text()),
var3: $.trim($("SapCode", this).text()),
var4: $("Title", this).text(),
var5: $.trim($("File", this).text()),
var6: $.trim($("ItemID", this).text())
};
}).get();
$("#searchresults").autocomplete({
source: data_results,
minLength: 3,
select: function (event, ui) {
...
}
}).data( "autocomplete" )._renderItem = function( ul, item ) {
return $( "<li></li>" ).data("item.autocomplete", item)
.append( "<a>" + item.var1 + "<br>" + item.var2 + "</a>")
.appendTo( ul );
};
}
});
Tutte le idee che cosa potrei mancare? Grazie in anticipo.
Sembra che
.data('autocomplete')
è ora.data('ui-autocomplete')
.Fonte: http://jqueryui.com/upgrade-guide/1.10/#removed-data-fallbacks-for-widget-names
Per impostazione predefinita, la funzionalità di autocompletamento si aspetta che la matrice di origine per contenere oggetti con un
label
proprietà, unvalue
di proprietà, o di entrambi.Con questo in mente, si hanno due opzioni:
Aggiungere un’etichetta o di proprietà di valore per i vostri oggetti di origine quando si elabora l’array dalla vostra chiamata AJAX:
Il
value
si assegna verrà utilizzato sufocus
,select
, e per la ricerca.Modificare il
source
funzione per eseguire il filtro personalizzato logica:Notare che con questa strategia, è necessario implementare personalizzato
select
efocus
logica.