我正在一個動態的在線表單網站上工作。在主窗體中,我有多個可以動態添加和刪除的子窗體。等待所有的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