Альтернатива .change () для конкретной ситуации c - PullRequest
1 голос
/ 03 февраля 2020

Чего я хочу достичь:

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

Проблема

Проблема, с которой я столкнулся, заключается в том, что я попытался использовать .change (), который работает, однако это срабатывает только при нажатии на элемент. (Эта проблема уже обсуждалась в этом посте Почему jQuery .change () срабатывает только когда я покидаю элемент? ).

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

Идеальный результат:

Когда пользователь выбирает опцию из списка автозаполнения, он запускает событие, и пользователю не нужно кликать в текстовом поле.

Событие, о котором я хочу поговорить, заключается в том, что текстовое поле автозаполнения скрыто, когда пользователь выбирает опцию:

$(search_box).change( function () {
    $(search_box).hide();
} );

Это работает, но, как я уже упоминал выше, пользователь должен нажать прочь, чтобы сработало событие изменения. Есть ли работа вокруг этого?

1 Ответ

1 голос
/ 03 февраля 2020

Вы можете использовать обработчик событий autocompleteselect как $( ".selector" ).on( "autocompleteselect", function( event, ui ) {} );, который

Инициируется, когда элемент выбран из меню. Действие по умолчанию - заменить значение текстового поля значением выбранного элемента.

здесь

...