2013-05-29 2 views
-1

У меня есть автозаполнение плагина (DevBridge AutoComplete) на моем текстовом поле.Autocomplete.js Предложения?

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

Он делает вызов Ajax (я могу видеть возвращение JSON в Fiddler), и я получаю возвращение, как это:

[{"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; 
    } 

Я не уверен, что это значит. Может кто-нибудь сказать мне, как это исправить? Это просто синтаксис? Я не уверен, где/как добавить эти предложения ...

+0

если вы пытаетесь 'console.log' это, результат? – Ven

+0

'console.log' который? длина? Это 0 ... –

+0

'console.log' предложения в верхней части вашей функции' verifySuggestionsFormat' –

ответ

0

suggestions null или undefined.

Перед осмотром переменной, проверить, что она существует:

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; 
} 
+0

Возможно, мой вопрос был сформулирован плохо. Я знаю, что предложения имеют значение null или undefined, но они должны быть заполнены, и я не могу понять, почему. Предложение должно иметь некоторую длину, я просто не уверен, как получить эту ценность. –

Смежные вопросы