我正在使用jquery.autocomplete.js和以下JS:
$("#Search").autocomplete("/uk/Search/AutoComplete",
{
dataType: 'json',
parse: function (data) {
var rows = new Array();
for (var i = 0; i < data.length; i++) {
rows[i] = { data: data[i], value: data[i].Tag, result: data[i].Tag };
}
return rows;
}, max: 20,
formatItem: function (row, i, max) {
return row.Tag;
},
width: 300,
minChars: 4,
highlight: false,
multiple: false
});
这一切都很好,我可以看到有一个服务器往返,我期望的结果是data
变量。
我遇到的问题是我可以在FireFox错误控制台中看到有错误说明s is undefined
。
以下内容失败:
$.Autocompleter.Cache = function(options) {
var data = {};
var length = 0;
function matchSubset(s, sub) {
if (!options.matchCase)
s = s.toLowerCase(); // this is where it fails
var i = s.indexOf(sub);
if (options.matchContains == "word") {
i = s.toLowerCase().search("\\b" + sub.toLowerCase());
}
if (i == -1) return false;
return i == 0 || options.matchContains;
};
为什么会失败?我能做些什么来解决它吗?
答案 0 :(得分:0)
大部分时间......
当我收到消息“[something] is undefined”时,这是因为我的JSON响应对象在JSON中包含非法字符,或者JSON格式不正确...使对象返回为undefined。
请发布您的JSON,以便我们进一步了解。