我有重新定义的问题_renderItems
。问题是它将 item 设置为 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。