我有一个使用Ajax在页面上提交多个表单的函数。
我正在尝试调用一个只在提交了所有表单时才执行操作的函数。
如果我将函数(即alert('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)
}
});
答案 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")
});
希望有所帮助!