Как предварительно скомпилировать JQuery UI автозаполнения виджет? - PullRequest
1 голос
/ 31 мая 2010

У меня есть виджет автозаполнения jquery ui в форме, и я хотел бы предварительно выбрать его значение из базы данных. Мое автозаполнение работает следующим образом: идентификатор представляет собой число, метка и значение совпадают и представляют собой сочетание идентификатора + "-" + описание. Когда выбрано значение из автозаполнения, значение скрытого поля устанавливается равным значению id. Затем значение скрытого поля сохраняется в БД при отправке формы. Когда пользователь возвращается на страницу для редактирования, мне нужно перезагрузить значение из db: я снова устанавливаю значение поля idden, а затем я хотел бы предварительно скомпилировать значение виджета автозаполнения с конкатенацией id + "-" + описание взято из БД. Я думаю, что я должен вызвать событие выбора строки в автозаполнении, но я не знаю, как это сделать. Есть ли у вас какие-либо идеи? Спасибо Вот код автозаполнения:

$('#codice_contratto').autocomplete({
    source: 'do_contratto.php',
    select: function(event, ui) {
                $('#id_contratto').val(ui.item.id);
            }
});

1 Ответ

0 голосов
/ 01 июня 2010

В коде на стороне сервера, который возвращает страницу для редактирования, я бы порекомендовал просто установить для значения как текстового поля с автозаполнением, так и скрытого поля их правильные значения, которые возвращаются с сервера. Это будет решение на стороне сервера, и ваш HTML будет выглядеть примерно так:

<input type="textbox" id="condice_contratto" value="1 - the description" />
<input type="hidden" id="id_contratto" value="1" />

Плагин автозаполнения JQuery работает изящно, когда задано значение элемента. На самом деле понятия «выбор» в нем нет. Он просто перемещается поверх текстового поля и устанавливает его значение с большим количеством причудливого пользовательского интерфейса.

Если вам требуется клиентское решение, просто сделайте что-то вроде этого:

$(document).ready(function() {
   $('#condice_contratto').val(current_id + ' - ' + current_description);
   $('#id_contratto').val(current_id);
}

Предполагается, что переменные current_id и current_description имеют правильные значения.

...