JQuery 1.4.2 と JQueryUI 1.8.5 を使用しています。この問題が最新バージョンに存在しないことはわかっていますが、JQuery と UI のバージョンを変更することはできません。
オートコンプリート項目を 2 行で表示しようとしています。
1 行目 - 名前と 2 行目 - 住所
2行で思い通りに表示されますが、アイテムを選択すると、ui.item is nullエラーが表示されます。
コードは次のとおりです。
$('#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エラーが表示されます。両方の要件を満たす方法が見つかりませんでした。
最善の解決策を提案するのを手伝ってもらえますか? ありがとう。