我发现了很多像这样的问题,但没有人回答我的问题。
我有这样的HTML:
<form action="..">
<input type="submit" value="download" />
</form>
表单生成并下载文件需要几秒钟。
如何在处理表单时禁用提交按钮并在完成后重新启用?我知道如何禁用它,但是如何捕获表单已完成处理?
我的解决方案是用手动ajax调用替换表单提交,如:
$('form').on('submit', function() {
disableButton();
$.get(form_action, function() {
enableButton()
// how to force browser to download a file ?
});
return false;
});
所以我有两个解决方案,两个都很糟糕。
答案 0 :(得分:0)
我可以要求下载文件你有额外的ULR吗?与表单操作URL不同。
如果您可以创建新的URL来下载文件,而不是直接将字节写入ajax响应, 那么也许我们可以使用iFrame下载文件。
所以解决方案应该是: 1使用ajax发送文件下载发布请求。 - &GT;在服务器端创建文件
2服务器端完成后,返回目标文件的地址。
3在success方法中,使用文件URL创建新的iFrame。 - &GT;在这里,如果内容类型(MIME类型)正确,浏览器将显示下载diaglog。
在服务器端,我们需要一些空间来保存文件和删除文件的过程。
我之前没有这样做过......只是一个建议。 :P