jqueryUi AutoVervollständigen - benutzerdefinierte Daten und display
Meine vollständige code ist hier: http://jsfiddle.net/HfNk9/13/
Ich bin auf der Suche zu diesem Beispiel jqueryUi AutoVervollständigen - benutzerdefinierte Daten und display.
Nehmen wir an, das Objekt der Projekte ist unterschiedlich, und es sieht wie folgt aus:
project = [
{
name: 'bar',
value: 'foo',
imgage: 'img.png'
}
]
Wenn ich source = project
die AutoVervollständigen-bezieht sich auf project.value
und nicht project.name
.
Wie soll ich dieses Verhalten ändern?
var autocomplete = function(element, data) {
var fixtures = [
{
avatar: "http://www.placekitten.com/20/20",
name: 'aaaaaaaaa',
value: 'bbbbbbbbb'}
];
element.autocomplete({
minLength: 3,
source: function(request, response) {
var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");
response($.grep(fixtures, function(value) {
return matcher.test(value.name);
}));
},
create: function() {
console.log(fixtures)
element.val(fixtures.name);
},
focus: function(event, ui) {
element.val(ui.item.name);
return false;
},
select: function(event, ui) {
element.val(ui.item.name);
return false;
}
}).data('autocomplete')._renderItem = function(ul, item) {
return $('<li></li>')
.data('item.autocomplete', item)
.append('<a><img src="' + item.avatar + '" />' + item.name + '<br></a>')
.appendTo(ul);
};
};
autocomplete($('#auto'));
Mein vollständiger code: http://jsfiddle.net/HfNk9/13/
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie filter auf eine andere Eigenschaft als die autocomplete-widget sucht standardmäßig aktiviert (wie Ihnen sicher aufgefallen, dass es
name
odervalue
bei der Verwendung eines Quell-array mit Objekten).Können Sie eine Funktion verwenden, anstatt ein array als Quelle und führen Sie Ihre eigenen Filter, die Art und Weise:
Beispiel: http://jsfiddle.net/QzJzW/
Sollten Sie die
select
Eigenschaft:Die Antwort ist in den source-code der Seite, die du gelinkt hast. Wenn Sie möchten, verwenden Sie den Wert
name
stattvalue
dann würden Sie so etwas tun: