我想使用jqueryui autocomplete组合框功能让用户从列表中选择一个选项。
我按照example进行了操作,这是jsfiddle中的代码。
当我点击列表中的选项时,我收到此错误:
Uncaught TypeError: Cannot read property 'option' of undefined.
错误指向以下行:
select: function(event, ui) {
ui.item.option.selected = true; <-- This Line
self._trigger("selected", event, {
item: ui.item.option
})
},
option
有什么问题?
编辑2:
似乎ui.item
未分配给任何值,因为当我想向控制台显示ui.item
时,它会返回undefined
而不是object
。
但是,我该如何解决这个问题?
答案 0 :(得分:0)
如果您提到的代码是自动填充
,请尝试使用值代替选项 i.item.value
这将为您提供组合中选定的字符串类型值
例如,我想从我的组合(#emailstext)
$('#emailstext').autocomplete({
source: dat,
minLenght: 1,
autocomplete: true,
select: function (e, i) {
dowhateverwithemail(i.item.value); //this will pass selected value from combo to function
}
});
答案 1 :(得分:0)
似乎问题是jqueryui版本。在1.10.x版中,数据不再存储在item.autocomplete
中,而是ui-autocomplete-item
。
它应该是:
input.data("ui-autocomplete")._renderItem = function(ul, item) {
return $("<li></li>").data("ui-autocomplete-item", item).append("<a>" + item.label + "</a>").appendTo(ul);
};
而不是
input.data("ui-autocomplete")._renderItem = function(ul, item) {
return $("<li></li>").data("item.autocomplete", item).append("<a>" + item.label + "</a>").appendTo(ul);
};
您可以参考here。