-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

suggestionsnull または未定義です。

変数を検査する前に、それが存在することをテストします。

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 に答える