jquery.autocomplete.js - как работает автозаполнение? - PullRequest
2 голосов
/ 10 января 2010

Я вызываю автозаполнение jquery с результатом запроса GET. Вызов функции автозаполнения выглядит так:

$('#id_project_owner_externally').autocomplete('/pm/contact_autocomplete');

url / pm / contact_autocomplete возвращает список кортежей. Первая часть кортежа - это имя контакта, а вторая часть кортежа - это идентификатор контакта.

Соответствующая функция (часть представления django) выглядит следующим образом:

def iter_results(results):
        if results:
            for r in results:
                yield '%s|%s\n' % (r.first_name, r.id)

Теперь мне интересно, что делает автозаполнение jquery с кортежом first_name + id. На самом деле first_name помещается в поле ввода. Но что происходит с частью id. Это важная информация, которая мне нужна.

Могу ли я сказать jquery, что идентификатор должен быть помещен в определенное скрытое поле?

ссылка на источник js

Редактировать: решение

<script type="text/javascript"><!--//
        $('#id_project_manager_externally').autocomplete('/pm/contact_autocomplete').result(function(event, item) {$('#id_project_manager_externally_hidden').attr("value", item[1]);});//--></script> 

Ответы [ 2 ]

3 голосов
/ 10 января 2010

Документы для плагинов имеют следующий пример:

var data = [ {text:'Link A', url:'/page1'}, {text:'Link B', url: '/page2'} ];
$("...").autocomplete(data, {
  formatItem: function(item) {
    return item.text;
  }
}).result(function(event, item) {
  location.href = item.url;
});

Таким образом, у вас может быть опция .result (), которую вы используете для заполнения скрытого поля. например $('#my_hidden_field').val(item.extra_value);

2 голосов
/ 10 января 2010

Вам нужно заглянуть в исходный код jquery.autocomplete.js. Ваш код на Python делает просто возвращение идентификатора и имени, разделенных хеш-символом, по одной записи в строке. Javascript для автозаполнения обрабатывает этот вывод, поэтому это часть кода, которую необходимо изменить, чтобы поместить идентификаторы в скрытые поля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...