mã đầy đủ của tôi là ở đây: http://jsfiddle.net/HfNk9/13/jQueryUI autocomplete - dữ liệu tùy chỉnh và hiển thị
tôi tìm cách để ví dụ này jqueryUi autocomplete - custom data and display.
Giả sử các dự án đối tượng là khác nhau và nó trông như thế này:
project = [
{
name: 'bar',
value: 'foo',
imgage: 'img.png'
}
]
Nếu tôi đặt source = project
autocomplete đề cập đến project.value
và không project.name
.
Tôi nên thay đổi hành vi này như thế nào?
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'));
mã đầy đủ của tôi: http://jsfiddle.net/HfNk9/13/
+1 Giải thích tuyệt vời của tôi. Cảm ơn nhiều. –
Một điều nữa, thẻ "a" trong kết xuất là cần thiết, không có những thứ như phương pháp lấy nét hoặc những thứ khác sẽ thất bại (không có tập hợp ui.item). – gpichot
@andrewWhitaker độc đáo làm sir. – Bnjmn