Как гарантировать порядок вызова обработчиков событий jQuery?
Знатоки jQuery, есть ли возможность гарантировать порядок вызова обработчиков событий у разных элементов? Пример: есть input, на нем висит обработчик события blur. В этом событии корректируются введенные туда данные. И есть рядом button: при нажатии на него, данные отправляются на сервер.
Код уже написан, много переписывать не хочется, ищу минимальный костыль, чтоб работало так: когда мы вводим данные в input, которые необходимо корректировать, то нужно предотвратить отправку данных на сервер. Я хочу, чтоб click по кнопке вызывался раньше, проверял, если данные некорректные, то return; из обработчика, и ничего не отправлять. Потом обработчик blur скорректирует данные, чтоб клиент видел, что данные скорректировались и подтвердил отправку повторным нажатием на button. Если же данные изначально введены корректно, то условие в обработчике click доходило бы до отправки данных.
Второй вариант: так как blur вызывается раньше, было бы круто в ситуации, когда данные пришлось корректировать, в этом обработчике каким-то чудом предотвратился вызов обработчика click по button, но так как это разные элементы, и независимые друг от друга события, подозреваю, что такой вариант неочень..
Можно делать кнопке disabled в момент автокоррекции. Можно завести свой набор флагов, типа "is_verified", "is_autocorrected" и проверять их состояние из обработчика кнопки. Выработайте четкую схему как бы вы хотели это видеть, тогда гораздо легче будет понять как это сделать.