【发布时间】:2015-11-19 10:12:37
【问题描述】:
我正在使用this jquery autocomplete 插件。但是当我搜索点击过滤的结果时,我得到了这个错误:
未捕获的类型错误:无法读取未定义的属性“值”
这是来自检查器控制台的堆栈跟踪:
Uncaught TypeError: Cannot read property 'value' of undefined
Autocomplete.onSelect @ jquery.autocomplete.min.js:915
Autocomplete.select @ jquery.autocomplete.min.js:850
(anonymous function) @ jquery.autocomplete.min.js:195
n.event.dispatch @ jquery.min.js:3
r.handle @ jquery.min.js:3
这是我调用的方法:
var url = $(item).data('url');
var keyField = $(item).data('keyField') !== undefined ? $(item).data('keyField') : 'id';
var valueField = $(item).data('valueField') !== undefined ? $(item).data('valueField') : 'description';
$(myItem).devbridgeAutocomplete({
serviceUrl: myUrl,
minChars: 0,
type: 'post',
deferRequestBy: 500,
transformResult: function (response) {
var json_response = $.parseJSON(response);
var suggestions = $.map(json_response.items, function (dataItem) {
var interface = $('.content-wrapper').interface();
return {value: dataItem[valueField], data: dataItem[keyField]};
});
return {suggestions: suggestions};
},
onSelect: function (suggestion) {
// Do my stuff to populate the view
}
});
查看源代码,当调用函数onSelect() 时出现问题,因为数组中没有建议。
为什么这个数组是空的?我正在选择一个过滤值,所以应该有一个元素
【问题讨论】:
-
devbridgeAutocomplete?? -
我找不到您的
valueField和keyField的定义位置。 -
哦,是的,对不起...这两个值是输入上的
data-value-field和data-key-field。由于我有很多自动完成功能,因此我使用这两个字段来了解返回的响应类型...例如,如果我在第一个自动完成功能中返回 ID、NAME、DESCRIPTION 的响应,我想要 ID 和 NAME,而在第二个在这种情况下,我想要 ID 和说明,我要查找的是 ID 和说明 -
奇怪的 SO 没有自动加载。很高兴知道您的问题已解决。
标签: javascript jquery autocomplete