Триггер Bootstrap typeahead при событии вставки

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

$('#search-bar').bind("paste", function(e)
{
    $(this).trigger("keydown"); // Tried keyup, input to no avail!
});

Любая помощь приветствуется!


person Dan Crowe    schedule 10.09.2013    source источник
comment
Что вы подразумеваете под «запустить печатную головку»? Отправить поиск? У вас есть кнопка поиска. Вставьте html код всей формы   -  person Miro    schedule 10.09.2013
comment
Мне просто нужно иметь возможность запускать поиск typeahead, который запускается внутри typeahead.js с помощью функции keyup. Я не могу найти способ запустить его без нажатия клавиш, а вызов .trigger('keyup') не работает.   -  person Dan Crowe    schedule 10.09.2013
comment
Почему он уже не ведет себя таким образом? Я только что попробовал этот пример и вставил одну букву, и появилось несколько стран . Кроме того, почему вы не можете использовать $('#search-bar').bind('change',...) Это текстовое поле, поэтому оно должно работать так же, как вставка   -  person Miro    schedule 10.09.2013
comment
Извините, только что прочитал весь пост. Да в основном отправить поиск. У меня нет кнопки поиска, это только ввод текста, чтобы выбрать элемент, который вы просто щелкаете по нему в списке или нажимаете Enter, и я обрабатываю это соответствующим образом. Это не такая форма, это просто ввод, который выбирается в jQuery, а затем вызывается typeahead следующим образом. <input id = "search-bar" autocomplete = "off" class = "form-control" type = "text" placeholder = "Search...">   -  person Dan Crowe    schedule 10.09.2013
comment
Тестировал то же решение с keyup и bootstrap-3-typeahead и заметил, что только первое событие вставки не активировало функциональность опережающего ввода, но последующие работали по желанию.   -  person esmail    schedule 30.07.2020


Ответы (2)


Бессовестно скопированный код из https://stackoverflow.com/a/15179532/559079

        $('#search-bar').typeahead({
            'updater' : function(item) {
              myAjaxFunction(item);
            }
        });

function myAjaxFunction (item){
$.ajax({ //DO STUFF HERE });
}
person Miro    schedule 10.09.2013
comment
Функцию обновления я уже написал. Упреждающий ввод не проблема, он отлично ищет. Я просто не могу заставить его искать, не вводя физически в строку. Из интереса я попытался добавить это, но это не сработало. В моем поиске не используется форма, в которой используется ajax при выборе возвращаемого элемента. - person Dan Crowe; 10.09.2013
comment
Я действительно не понимаю вашей проблемы. Если у вас есть программа обновления, которая работает и срабатывает, как и предполагалось, просто переместите все ваши ajax-материалы в функцию и запустите ее через файл update. Вам действительно не нужны события и триггеры нажатия клавиш (обновленный ответ) - person Miro; 10.09.2013

(1) мое ленивое решение: вызовите $('#yourtypeaheadfield').trigger('keyup'), чтобы «имитировать» событие keyup/keypress. Вот как Typeahead подключается к JQuery API.

(2) «лучший» ответ: явно запустить событие typeahead - $().trigger('typeahead.updater') - я не смог понять синтаксис, и он не задокументирован (по крайней мере, не для начальной загрузки 2.3.2).

person egbutter    schedule 25.10.2014