の再定義に問題があり_renderItems
ます。問題は、アイテムをnullに設定していることです。つまり、エラーが発生しています
null のプロパティ 'casValue' を読み取れません
コード:
$(function() {
$('.CasNumber').autocomplete({
source: function(request, response) {
$.ajax({
url: //url of the page
dataType: "json",
data: {
search_word: request.term,
},
success: function(data) {
response($.map(data.result, function(item) {
return {
label: item.Cas,
value: item.Cas,
casLabel: 'Cas No.',
casValue: item.Cas,
egLabel: 'Eg No.',
egValue: item.Eg,
REACHLabel: 'REACH No.',
REACHValue: item.ReachRegNumber,
indexLabel: 'Index-number',
indexValue: item.IndexNumber,
nameValue: item.Name,
data: item
}
}));
}
});
},
minLength: 1,
focus: function(event, ui) {
$(".CasNumber").val(ui.item.casValue);
return false;
},
select: function(event, ui) {
log(ui.item.data, this);
return false;
},
open: function() {
$(this).removeClass("ui-corner-all").addClass("ui-corner-top");
},
close: function() {
$(this).removeClass("ui-corner-top").addClass("ui-corner-all");
}
})
.data("ui-autocomplete")._renderItem = function(ul, item) {
return $("<li>")
.data("item.ui-autocomplete", item)
.append("//Format of the drop down list is here")
.appendTo(ul);
};
});
デバッガーでアイテムの値を適切に取得してコードを実行すると、_renderItem
リストが完全に描画されますが、フォーカスが開始されると (アイテムの選択後) ui.item parameter
、null に設定されます。