我正在使用 JQuery 1.4.2 和 JQueryUI 1.8.5。我知道这个问题在最新版本中不存在,但我们无法更改 JQuery 和 UI 版本。
我正在尝试以 2 行显示自动完成项目。
第一行 - 名称和第二行 - 地址
它显示为我想要的 2 行,但是当我选择该项目时,它显示ui.item 为空错误。
代码如下:
$('#txtPractice').autocomplete({
source: function (request, response) {
$.ajax({
url: '/MyWebService.asmx/GetDataFromFreeText',
data: "{ 'name': '" + request.term + "'}",
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
dataFilter: function (data) { return data; },
success: function (data) {
response($.map(data.d, function (item) {
return {
value: item.name,
id: item.id,
desc: item.address1
}
}))
},
});
},
delay: 0,
minLength: 2,
select: function (event, ui) {
$('#hdPracticeID').val(ui.item.id);
}
})
.data("autocomplete")._renderItem = function (ul, item) {
return $("<li>")
.append("<a>" + item.value + "<br>" + item.desc + "</a>")
.appendTo(ul);
};
}
如果我删除渲染 2 行的功能 .data("autocomplete").... ,它工作正常并且可以选择项目,但我只得到 1 行。如果我把,当项目被选中时,ui.item is null错误显示。我找不到满足我的两个要求的方法。
你能帮我提出最好的解决方案吗?谢谢。