-1

我的文本框上有一个自动完成插件 ( DevBridge AutoComplete )。

$('#myTextBox').autocomplete({
    serviceUrl: '/Handler/Autocomplete.ashx?'
});

它正在进行 Ajax 调用(我可以在 Fiddler 中看到 JSON 返回),并且我得到如下返回:

[{"Key":39,"Value":"118"},{"Key":40,"Value":"155"},{"Key":2,"Value":"16"}]

但我不断收到错误消息:

Unable to get property 'length' of undefined or null reference

在这部分代码中:

verifySuggestionsFormat: function (suggestions) {
        // If suggestions is string array, convert them to supported format:
        if (suggestions.length && typeof suggestions[0] === 'string') {
            return $.map(suggestions, function (value) {
                return { value: value, data: null };
            });
        }

        return suggestions;
    }

我不确定这意味着什么。有人可以告诉我如何解决这个问题吗?它只是语法吗?我不确定在哪里/如何添加这些建议......

4

1 回答 1

0

suggestions为空或未定义。

在检查变量之前,测试它是否存在:

if (!suggestions) return;

例如:

verifySuggestionsFormat: function (suggestions) {

    // Fail fast if suggestions is not valid
    if (!suggestions) return;

    // If suggestions is string array, convert them to supported format:
    if (suggestions.length && typeof suggestions[0] === 'string') {
        return $.map(suggestions, function (value) {
            return { value: value, data: null };
        });
    }

    return suggestions;
}
于 2013-05-29T20:41:27.650 回答