Подтвердить что ты не робот

Автозаполнение JQuery: Подать заявку на выбор?

Использование автозаполнения JQuery в традиционной форме HTML.

Попытка представить форму (старомодный способ) при выборе.

Но поле ввода заполняется, а затем мне нужно нажать "вернуться" в 2-й раз или нажать кнопку "Отправить".

Я пробовал несколько примеров SO, но я не мог заставить их работать.

Как вы автоматически отправляете форму при выборе?

4b9b3361

Ответ 1

ОБНОВЛЕНИЕ: Я, наконец, понял это, код ниже должен сделать трюк. По какой-то причине обратный вызов change не работал, но обратные вызовы close и select. Использование select лучше, так как close также будет вызываться, если поле теряет фокус.

$(function() {
    $("#searchField").autocomplete({
        source: "values.json",
        select: function(event, ui) { 
            $("#searchForm").submit(); }
    });
});

ДРУГОЕ ОБНОВЛЕНИЕ: Хорошо, также существует проблема с обратным вызовом select, который по умолчанию (в приведенном выше коде), если вы пересекаете автозаполнение с помощью клавиатуры, и выберите с ключом ввода, вход изменяется до отправки формы. Однако, если вы выберете его с помощью мыши, форма будет представлена ​​непосредственно перед изменением ввода, поэтому представленное значение - это то, что пользователь набрал (не то, что она выбрала из раскрывающегося списка автозаполнения). Работа, которая, похоже, работает:

$("#searchField").autocomplete({
    source: "values.json",
    minLength: 2,
    select: function(event, ui) { 
        $("#searchField").val(ui.item.label);
        $("#searchForm").submit(); }
});

Ответ 2

$( "#searchField" ).result(function(event, data, formatted) {
  $(this).closest("form").submit();
});

ПоискField уже заполнен выбранным полем, поэтому нет необходимости делать это в этой функции снова.

Официальная документация: http://docs.jquery.com/Plugins/Autocomplete/result#handler

Ответ 3

Я не мог комментировать ответ @handsofaten, поэтому я добавлю к его ответу здесь. Возможно, имеет смысл использовать значение, а не label, так как в некоторых случаях, мой случай, метка не то, что пользователь хотел бы искать в базе данных.

$("#searchField").autocomplete({
source: "values.json",
minLength: 2,
select: function(event, ui) { 
    $("#searchField").val(ui.item.value);
    $("#searchForm").submit(); }
});

Ответ 4

Вы отправляете выбранную заявку, вызывая идентификатор кнопки отправки в этом поле, даже если код находится на другой странице.

 document.getElementById('submit').click();

Ответ 5

  select: function( event, ui ) {

          if(ui.item){

           $(event.target).val(ui.item.value);

    }

           $(event.target.form).submit();

                  });