Есть ли возможность синхронизировать события в javascript?
Моя ситуация следующая: у меня есть форма ввода со многими полями, в каждом из которых зарегистрировано событие onchange. там также есть кнопка, чтобы открыть всплывающее окно для некоторых других / специальных вещей, которые можно там сделать.
Мое требование заключается в том, чтобы события onchange были завершены до того, как я смогу открыть всплывающее окно.
Есть идеи, как этого добиться без использования setTimeout?
РЕДАКТИРОВАТЬ: дальнейшее объяснение требований:
Чтобы прояснить ситуацию, я пытаюсь подробно описать, что я делаю.
Я получил форму с некоторыми элементами ввода (матричная форма ввода заказа, например, статья, серийный номер, количество). Каждый раз, когда пользователь изменяет данные в одном из полей, ajax-вызов инициируется событием onchange для проверки ввода пользователя и считывания дополнительных данных (например, предварительной установки / форматирования одного из других полей). Эти ajax-вызовы тяжелы и требуют много времени, поэтому я должен избегать дублирования проверок.
Также есть кнопка, которая открывает всплывающее окно, которое дает пользователю другую форму для изменения данных, которые он вводил перед построчно, поэтому абсолютно необходимо, чтобы все проверки были выполнены до открытия этого всплывающего окна.
В данный момент я пытаюсь синхронизировать события onchange и открытие всплывающего окна с помощью setTimeout (всплывающее окно не открывается до того, как все проверки выполнены), что вызывает проблемы на моем сайте клиентов, поскольку эти всплывающие окна блокируются блокировщиком всплывающих окон.
Поэтому мне нужно открывать всплывающие окна, не останавливая их каким-либо блокировщиком всплывающих окон (IE 6/7/8).
Из-за моей матричной формы я просто не могу проверить все элементы ввода перед открытием всплывающего окна, мне нужно проверить только те, которые были изменены и еще не проверены (должно быть не более 1).