Задать вопрос
mmmaaak
@mmmaaak

Как гарантировать порядок вызова обработчиков событий jQuery?

Знатоки jQuery, есть ли возможность гарантировать порядок вызова обработчиков событий у разных элементов? Пример: есть input, на нем висит обработчик события blur. В этом событии корректируются введенные туда данные. И есть рядом button: при нажатии на него, данные отправляются на сервер.

Код уже написан, много переписывать не хочется, ищу минимальный костыль, чтоб работало так: когда мы вводим данные в input, которые необходимо корректировать, то нужно предотвратить отправку данных на сервер. Я хочу, чтоб click по кнопке вызывался раньше, проверял, если данные некорректные, то return; из обработчика, и ничего не отправлять. Потом обработчик blur скорректирует данные, чтоб клиент видел, что данные скорректировались и подтвердил отправку повторным нажатием на button. Если же данные изначально введены корректно, то условие в обработчике click доходило бы до отправки данных.

Второй вариант: так как blur вызывается раньше, было бы круто в ситуации, когда данные пришлось корректировать, в этом обработчике каким-то чудом предотвратился вызов обработчика click по button, но так как это разные элементы, и независимые друг от друга события, подозреваю, что такой вариант неочень..

Как поступить при таком раскладе? Спасибо.
  • Вопрос задан
  • 494 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
Stalker_RED
@Stalker_RED
Можно делать кнопке disabled в момент автокоррекции. Можно завести свой набор флагов, типа "is_verified", "is_autocorrected" и проверять их состояние из обработчика кнопки. Выработайте четкую схему как бы вы хотели это видеть, тогда гораздо легче будет понять как это сделать.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@vacslav-dev
web-developer
Если button и imput элементы формы, и при клике на button происходит отправка данной формы, то можно повесить обработчик на событие submit формы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы