Я вызываю автозаполнение jquery с результатом запроса GET. Вызов функции автозаполнения выглядит следующим образом:jquery.autocomplete.js - как работает автозаполнение?
$('#id_project_owner_externally').autocomplete('/pm/contact_autocomplete');
URL-адрес/пм/contact_autocomplete возвращает список кортежей. Первая часть кортежа - это имя контакта, а вторая часть кортежа - это идентификатор контакта.
Соответствующая функция (часть зрения Джанго) выглядит следующим образом:
def iter_results(results):
if results:
for r in results:
yield '%s|%s\n' % (r.first_name, r.id)
Теперь мне интересно, что JQuery автозаполнения делает с first_name + ид кортежа. Фактически первое имя помещается в поле ввода. Но что происходит с идентификационной частью. Это важная информация, которая мне нужна.
Можно ли указать jquery, что идентификатор должен быть помещен в определенное скрытое поле?
Edit: Решение
<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>
Это выглядит многообещающе. Я дам ему попробовать. –
Это правильный ответ. С помощью опции .result() вы можете заменить значение скрытого поля. Результатная часть запускается после того, как пользователь выбрал опцию из раскрывающегося списка автозаполнения. –