Я работаю над динамическим веб-сайтом онлайн-формы. В основной форме у меня есть несколько подформ, которые можно добавлять и удалять динамически.Ожидание вызова AJAX, чем диалоговое окно показа
<div class='subform'>
//form fields
<input ...>
...
<button class='subform_submit'>
</div>
Для каждого подчиненного, я связываю вызов AJAX на кнопке отправки Подчиненной как это:
$('#main').on('click', '.subform_submit', function(){
// Get this subform's user input
...
$.ajax({
url: ..,
type: ..,
data: /* this subform's data */
});
});
Таким образом, в этой странице, я могу иметь от 0 до 10 субформов в зависимости от выбора пользователя. У меня также есть основная кнопка отправки в нижней части страницы, которая может передавать эти подформы и данные основной формы вместе.
$('#main').on('click', '#submit', function(e){
$('.subform_submit').click(); // Submit each subform
bootbox.confirm({ });
})
После кнопки основной отправить щелкает, я хочу, чтобы показать загрузочную картинку и затем показать диалоговое окно (я использую bootbox.confirm()
здесь), пока все вызовы AJAX не завершены. В этом диалоговом окне сообщается пользователю о том, что была отправлена вся форма, включая подформы. Но проблема в том, что каждый вызов AJAX может занять 2 секунды, и я не знаю, как вызовы могут быть до завершения. Как я могу написать эту главную кнопку так, что она будет:
- Показать изображение загрузки сразу, и
- Скрыть изображение загрузки и показать диалоговое окно после того, как все вызовы AJAX закончили?
Спасибо за @Lewis Лучшего решения! – monknom