页面上的所有Ajax表单之后的函数已经提交

时间:2014-05-13 18:46:34

标签: jquery ajax forms

我有一个使用Ajax在页面上提交多个表单的函数。

我正在尝试调用一个只在提交了所有表单时才执行操作的函数。

如果我将函数(即ale​​rt('Done')')放在下面的脚本中,它当然会为页面上提交的每个表单创建一个警报,因为它位于for.each中。

我试图只在提交所有表单后才提醒它。

任何提示?

$('.order-expire').each(function() {

var form = $('.order-expire');

form.ajaxForm({
    data: form.serialize(),
    dataType : 'json',
    beforeSend: function() {
        $("#set-expiry-dates").attr('disabled', 'disabled');
        $("#form-loader").show();
    },
    success : function (jsonData) {
        setTimeout(function() {
            $("#set-expiry-dates").removeAttr('disabled');
            $("#set-expiry-dates").remove();
             $("#form-loader").hide();
            alert('Done');
        }, 500)
    }
});

2 个答案:

答案 0 :(得分:0)

您可以使用.size().length()查看您在每个循环中循环的表格数量,因此当它达到0时,您可以触发该功能。

类似的东西:

$(".form").each(function(){

//your ajax blah blah

if(!$(this).length()){//0 is a falsie value so if its diferent from 0 it will be truish

alert("OK, IM FINISH BITCHESS!")
}
});

希望有所帮助

答案 1 :(得分:0)

你尝试过吗?

$( document ).ajaxComplete(function() {
  console.log("finished ajax requests")
});
希望有所帮助!