2011-01-12 2 views
0

Может ли кто-нибудь помочь мне с этой проблемой. Я использую jQuery UI autocomplete плагин. Есть ли способ передать данные JSON, как этотКак передать данные json в ui autocomplete

[{ 'имя пользователя': 'user1}, {' имя пользователя ': 'user2}, {' имя пользователя': «user3}]

ответ

2

Вам необходимо создать массив имен пользователей. С JQuery, вы можете сделать следующее:

var jsonData = [{'username' : 'user1'}, {'username' : 'user2'}, {'username' : 'user3'}]; 
var usernames = $.map(jsonData, function (obj) { return obj.username; }); 

$("#myInput").autocomplete({source: usernames}); 
+0

Переменная jsonData имеет данные json console.log (usernames) return [] - нет данных – Peter

+0

@Matt: '$ .map' не возвращает объект jQuery, массив; не нужно вызывать '.get()'. – Domenic

+0

@Peter: запуск первых двух строк моего кода в консоли работает; проблема должна быть в другом месте вашего кода, например. в формате вашего JSON. Может быть, это строка? В этом случае используйте 'JSON.parse', чтобы превратить его в фактический объект JavaScript. – Domenic

0

Несомненно, документация для плагина должна что-то сказать об этом, однако ваш вопрос в лучшем случае расплывчатый. Какой плагин вы используете? Имеются ли какие-либо методы обслуживания для ввода данных?

+0

Это будет комментарий, а не ответ. Я знаю, что у вас пока нет достаточного количества комментариев, чтобы прокомментировать этот вопрос. –

+0

это правильно, и спасибо за то, что он дал хедупы :) –

0

Отъезд source опцию в Documentation. Это может быть локальный массив JavaScript.

+1

Пожалуйста, поймите терминологию, чтобы вы не злоупотребляли ею. http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/ –

+0

Ярмарка. Тем не менее, JSON должен быть массивом значений, чтобы автозапуск работал. Хотя это неясно, это не злоупотребление. –