Ошибка автозаполнения jQuery: "s не определено". Как я могу решить это? - PullRequest
0 голосов
/ 20 апреля 2011

Я использую 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 голосов
/ 20 апреля 2011

Большую часть времени ...

Когда я получаю сообщение «[что-то] не определено», это происходит из-за того, что мой объект (ы) ответа JSON содержит недопустимый символ в JSON или JSON не отформатирован должным образом ... из-за этого объект возвращается как неопределенный.

Пожалуйста, опубликуйте свой JSON, чтобы мы могли посмотреть дальше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...