在前台怎么通过js实现表单提交后,判断该提交调用的Action方法是否执行完成了

我前台有一个导出word的按钮,点击后可以导出word。由于word文件比较大导出时间比较久,为了防止重复点击导出word按钮,我现在需要在前台写一个js判断。如果正在导出word就弹出窗口提示,否则可以继续导出这需要怎么实现啊!
但是我这样处理后flag总是会变成 flag = 0

var flag =0;
function expToWord(sign){
if(flag==1){
alert("文件正在导出中,请稍后再试!");
return false;
}
flag = 1;
var param = "?xxxxxx=ssss";
$("#form1").attr("action","exportpaperword.shtml"+param).trigger("submit");
flag = 0;
}

你想想你提交一下表单 一般都异步的瞬间完事 回来肯定又把值都重置了
这个东西我以前弄过一下 就是用户前面提交了一个 视频文件 服务器进行转码 然后提示进度给页面显示,最后我用的办法是 JAVA里做一个STATIC的全局变量 在转码的时候 把进度写进去
然后前台AJAX 定时去一个ACTION取值 和你这个应该差不多
只有进度是100的时候 按钮在变成可以操作状态
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-03-18
这种推荐用AJAX做,后台方法执行完毕后返回执行结果,然后调用回调(callback)方法,就能准确判断是否执行完毕,在调用AJAX的时候还能加入等待字样或者锁屏的代码,到执行完毕后在回调函数中解锁即可。
第2个回答  2017-07-30
submit只是表单提交时的验证事件,无法获取提交是否成功
return false阻止表单提交,自己写ajax提交表单内容
$("#xxx").submit(function () {
$.ajax({ type: 'POST', data: $(this).val(), url: 'xxxx',
success: function () { //...
},
error: function (xhr) {
//...
}
});
return false;
});
第3个回答  2014-03-18
是不是也可以用进度条,点击导出 后给一个导出的进度条。
相似回答