jQuery AutoComplete错误:“s未定义”。我该如何解决这个问题?

时间:2011-04-20 11:03:44

标签: jquery autocomplete

我正在使用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;
    };

为什么会失败?我能做些什么来解决它吗?

1 个答案:

答案 0 :(得分:0)

大部分时间......

当我收到消息“[something] is undefined”时,这是因为我的JSON响应对象在JSON中包含非法字符,或者JSON格式不正确...使对象返回为undefined。

请发布您的JSON,以便我们进一步了解。