我的应用程序执行form.submit(),它调用返回FileResult(附件)的操作。在提交之前,我有javacript提出“请等待”div。我需要在返回结果时清除它。对于返回写入页面的响应的操作,我使用window.onload事件来清除div,但是当返回附件时该事件不会触发。
执行form.submit();HidePleaseWait()
之类的操作无效,因为提交是异步的。返回附件时是否会触发其他事件?或者,是否有某种方法可以组合多个ActionResult,以便我可以在同一个响应中更新页面?
答案 0 :(得分:1)
如果您使用jQuery,则应执行以下操作。
$('selector').submit(function(event){
event.preventDefault();
// @Hiding
// Do your AJAX call
$.ajax({
url: "test.html",
success: function(){
// @What to do when done
}
});
});
答案 1 :(得分:0)
我知道这是一篇过时的文章,但是我有同样的需求,并发现了将来可能会困扰某人的东西。
我在那里找到了解决方案:https://www.codeproject.com/Articles/1095434/Show-an-animation-while-waiting-for-a-download-to
我只需添加window.clearInterval(_tmr)
即可每100毫秒停止一次验证,并添加document.cookie = 'dlc= ; expires = Thu, 01 Jan 1970 00:00:00 GMT'
即可清除Cookie。
所以我的最终代码如下:
var _tmr;
$('form').submit(function () {
if (!_tmr) {
$('#cookieValue').val(Date.now().toString());
_tmr = window.setInterval(VerifyEnd, 100);
}
});
function VerifyEnd() {
var _str = 'dlc=' + $('#cookieValue').val();
if (document.cookie.indexOf(_str) !== -1) {
$('body').removeClass("loading");
window.clearInterval(_tmr);
document.cookie = 'dlc= ; expires = Thu, 01 Jan 1970 00:00:00 GMT';
_tmr = null;
}
}