У меня есть элемент ввода текста, который использует автозаполнение пользовательского интерфейса jQuery. Входные данные связаны с событием onchange, чтобы изменить некоторые другие значения формы на основе выбора пользователя. Я также хочу изменить эти другие значения формы, когда пользователь выбирает параметр из автозаполнения.
Проблема в том, что если пользователь ищет «пиво», но набирает только «пчелу», а затем нажимает на опцию «пиво» в автозаполнении, переключается входное значение со значением «пчела», а затем в автозаполнении Функция выбора срабатывает (с правильным значением «пиво»). Поскольку оба этих обработчика используют вызов ajax для поиска некоторых вещей, я попал в состояние гонки.
Мой вопрос таков: есть ли способ, чтобы onchange можно было либо не запускать, ни прерывать, в случае, если пользователь нажал на опцию автозаполнения. Примечание: это происходит только при нажатии, выбор опции с использованием только клавиатуры не вызывает смену ввода.
Я не могу полностью отключить onchange, когда автозаполнение активно, поскольку вполне вероятно, что пользователь будет просто продолжать печатать и выходить из ввода, не выбирая ничего из автозаполнения.
Я выполнил довольно много консольных.log (), и событие onchange запускается до всех других событий, которые я могу себе представить, включая фокус ввода, фокус элемента автозаполнения и т. Д.