автозаполнение jquery -пользовательский интерфейс не работает с удаленными данными

#python #django #jquery-ui-autocomplete

#python #django #jquery-пользовательский интерфейс-автозаполнение

Вопрос:

я трачу два дня на этот плагин, и безуспешно — работает только с локальным массивом данных: (у меня есть код (django / python), который генерирует строку json (проверено на http://jsonlint.com / ) что-то вроде этого:

 [{"id": 7626, "value": "Jarosu0142aw", "label": "Adrianowicz"}, {"id": 2702, "value": "Bou017cena", "label": "Baranowicz"}, {"id": 2542, "value": "Tomasz", "label": "Baranowicz"}]
  

мой код jquery:

 $('#query').autocomplete({
 source: "/aut/",   //this generate json and working
 minLength: 2
 });
  

я проверяю пример ajax — geonames — и это работает нормально. любая помощь?

Комментарии:

1. Firebug показывает какие-либо ошибки в браузере, вы можете видеть, как он вызывает источник и получает ответ? Что-нибудь в журналах ошибок сервера?

2. установлен ли для вашего mimetype ответа значение mimetype=»application / json» или mimetype = «application / javascript»? потому что иногда людям этого не хватает.

3. в журналах сервера ничего особенного: 127.0.0.1 — — [27/ май/2011:20:01:19 0200] » GET / aut / ?term=now HTTP / 1.1″ 200 136 и, конечно, я использую «application / json» в качестве mimetype

4. Хорошо, это моя глупая ошибка, в коде django все работает хорошо, firebug == теперь мой лучший друг

Ответ №1:

Вы можете использовать любые параметры .ajax внутри автозаполнения. Попробуйте это

 $('#query').autocomplete({
 source: "/aut/",   //this generate json and working
 dataType: "json",
 minLength: 2
 });
  

Ответ №2:

Для значения source вы можете использовать обратный вызов, а не URL страницы, как в этом примере:

http://jqueryui.com/demos/autocomplete/#remote-with-cache

Использование обратного вызова позволяет вам написать свой собственный успех и обработку ошибок для .ajax. Вероятно, вы захотите использовать .ajax и проверить ошибку.