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

JQuery UI autocomplete submit onclick result

Я пытался выяснить, как отправить форму, когда человек выбирает результат из вариантов автозаполнения. Он должен работать с помощью мыши или кнопки ввода. Я вижу примеры там, но всегда на куски. Никто не показывает всю функцию.

У меня есть этот код ниже, но я получаю ошибки, говоря, что результат не является функцией. Я не знаю, как совместить это, чтобы делать то, что я хотел бы. Любая помощь приветствуется.

jQuery(document).ready(function(){  

jQuery("#vsearch").autocomplete("ajax/search.php",
    {
    minLength: 2
}
);
jQuery("#vsearch").result(function(event, data, formatted) {
      jQuery('#vsearch').value( formatted );
      jQuery('#search').submit();
});
});
4b9b3361

Ответ 1

От: http://api.jqueryui.com/autocomplete/#event-select

выберите - Тип: автозаполненный

Запускается, когда выбран элемент из меню; ui.item относится к выбранный элемент. Действие по умолчанию выберите, чтобы заменить текстовое поле значение со значением выбранного пункт. Отмена этого события предотвращает значение от обновления, но делает не препятствовать закрытию меню.

Примеры кода

Поставить функцию обратного вызова для обработки событие select в качестве параметра init.

$( ".selector" ).autocomplete({
   select: function(event, ui) { ... }
});

Привязка к событию выбора по типу: autocompleteselect.

$( ".selector" ).bind( "autocompleteselect", function(event, ui) {
  ...
});

Итак, вы должны использовать:

EDIT: (изменено в случае, если пользователь ничего не выбирает)

$("#vsearch").autocomplete({
    source: "ajax/search.php",
    minLength: 2,
    select: function(event, ui) {
        if(ui.item){
            $('#vsearch').val(ui.item.value);
        }
        $('#search').submit();
    }
});

Если я уверен, что вы хотите сделать.

Ответ 2

На самом деле вам не нужно указывать элемент for и форму по идентификатору... поскольку эта информация уже передана функции select через объект Event. Лучше получить форму таким образом, потому что у вас может быть несколько форм на странице, к которой вы хотите применить автозаполнение. Или вы можете автозаполнять несколько элементов.

Кроме того, синтаксис в другом ответе неверен. JQuery использует .val() не .value() для установки входного значения.

Здесь приведен пример:

$("#vsearch").autocomplete({
    source: "ajax/search.php",
    minLength: 2,
    select: function(event, ui) {
        //assign value back to the form element
        if(ui.item){
            $(event.target).val(ui.item.value);
        }
        //submit the form
        $(event.target.form).submit();
    }
});