我正在使用带图像的自动完成功能来搜索razor中的文本框。我正在使用以下函数来使用jquery自动完成
$(function () {
$("#small-searchterms").autocomplete({
source: function (request, response) {
$.ajax({
url: '@Url.Action("SearchTermAutoComplete", "Home")', type: "GET",
dataType: "json",
data: { term: request.term },
success: function (data) {
response($.map(data, function (item) {
return { Name: item.Name, id: item.id, value: '<img src="' + item.productpictureurl +'">' + ' '+item.label};
}))
}
})
},
minLength: 3,
select: function (event, ui) {
var selecteditem = ui.item;
alert(selecteditem.id);
}
});
return false;
});
自动完成工作正常,可以显示名称但不是图像自动完成显示图片网址。有没有办法显示图片? Thnkx的帮助。
答案 0 :(得分:0)
您需要使用data('autocomplete')._renderItem
,例如,更改为:
$("#small-searchterms").autocomplete({
source: function (request, response) {
$.ajax({
url: '@Url.Action("SearchTermAutoComplete", "Home")', type: "GET",
dataType: "json",
data: { term: request.term },
success: function (data) {
response($.map(data, function (item) {
return {
Name: item.Name,
id: item.id,
value: item.productpictureurl,
label: item.label
};
}))
}
})
},
minLength: 3,
select: function (event, ui) {
var selecteditem = ui.item;
alert(selecteditem.id);
}
}).data('autocomplete')._renderItem = function(ul, item) {
return $('<li>')
.data('item.autocomplete', item)
.append(item.label + '<img src="' + item.value + '" alt="" />')
.appendTo(ul);
};