ОБНОВЛЕНИЕ: Я наконец понял это, код ниже должен сделать свое дело. По какой-то причине обратный вызов change
не работал, но обратные вызовы close
& select
работают. Лучше использовать select
, поскольку close
также будет вызываться, если поле теряет фокус.
$(function() {
$("#searchField").autocomplete({
source: "values.json",
select: function(event, ui) {
$("#searchForm").submit(); }
});
});
ДРУГОЕ ОБНОВЛЕНИЕ: Хорошо, есть также проблема с обратным вызовом select
, который заключается в том, что по умолчанию (в коде выше), если вы проходите выпадающее меню автозаполнения с помощью клавиатуры, и выбираете с клавиша ввода, ввод изменяется до отправки формы. Однако, если вы выбираете ее с помощью мыши, форма передается непосредственно перед изменением ввода, поэтому отправленное значение - это то, что набрал пользователь (а не то, что она выбрала в раскрывающемся списке автозаполнения). Кажется, что работает woraround:
$("#searchField").autocomplete({
source: "values.json",
minLength: 2,
select: function(event, ui) {
$("#searchField").val(ui.item.label);
$("#searchForm").submit(); }
});