2011-07-05 2 views
1

Я загружаю массив строк, используя $.getJSON, чтобы использовать его как значения в автозаполнении jquery ui. Я не могу заставить его работать.Autocomplete и ajax

кода (функция успеха вызывается правильно, и я вижу предупреждение):

$(function() { 
    $.getJSON(baseUri + 'truck/models/', {}, function (data) { 
     $("#ModelName").autocomplete({ 
       source: function(request, response) { 
        alert(data); 
        response(data); 
     } 
     }); 
    }); 
}); 

Содержимое возвращаемый сервером:

["KIRUNA K350","MAFI","SISU TR180","SISU TRX242","SVETRUCK 32T","VOLVO A25D","VOLVO A25E","VOLVO A40","VOLVO BMl120","VOLVO BML90"] 

ошибки, которые я получаю, когда я печатаю на входе коробка:

Uncaught TypeError: Cannot read property 'element' of undefined

+0

Какой код вы хотите видеть? 'data' - это именно тот контент, который я описал (я использовал инструменты chrome dev для его копирования). Используемый тип содержимого - 'application/json'. Вход (#ModelName) представляет собой простой тег: текстовый тег. – jgauffin

+0

Извините, пожалуйста, прокомментируйте свой код, почему вы запускаете функцию при настройке источника? $ ("# ModelName"). Autocomplete ({source: data}); будет работать нормально? – John

+0

, потому что это не сработало, и затем я начал использовать все альтернативы, описанные в документах. – jgauffin

ответ

0

вы должны убедиться, что вы установите значение объекта

Таким образом,

({источник: данные});

см скрипку, например: http://jsfiddle.net/dDCEW/

1

Похоже, вы просто делаете Аякса выборки для вариантов автозавершения на странице загрузки поэтому нет необходимости использовать функцию источника вы можете просто сделать:

$(function() { 
    $.getJSON(baseUri + 'truck/models/', {}, function (data) { 
     $("#ModelName").autocomplete({ 
       source: data 
     }); 
    }); 
}); 
+0

это было первое, что я пробовал;) Такая же ошибка. Что-то не так с моим строковым массивом? – jgauffin

+0

http://jsfiddle.net/petersendidit/dTyvy/1/ Если ваши данные действительно в этом формате, это не должно быть проблемой. Проверьте свой запрос ajax и убедитесь, что вы действительно получаете то, о чем вы думаете. – PetersenDidIt

+0

прочитал мой ответ. – jgauffin

0

У меня был еще один плагин, который определял menu в контексте jQuery. Я удалил этот плагин, и все работает отлично. Какой-то противный, да?