【发布时间】:2012-11-11 20:35:43
【问题描述】:
我有一个昂贵的表单操作,它在服务器上构建一个 zip 文件并将其返回给浏览器。
<form action='/download' method='post'>
<input type='submit' value='download'/>
</form>
我想在点击按钮时阻止页面,这样用户就不会重复点击按钮。
但是我想在表单返回后取消阻止页面。
成功完成表单后如何触发事件?
(我知道我可以通过将表单更改为 ajax 提交来触发此操作,但不会出现保存文件对话框...)
有什么建议吗?
谢谢
【问题讨论】:
-
你可以使用这个插件malsup.com/jquery/form/#ajaxSubmit 并在“成功”事件中做任何你需要的事情
-
可以在jQuery Ajax函数的回调中触发任意一组函数。
-
试试:jsfiddle.net/gRoberts/Ca9nB - 真的,您需要做的就是在单击提交按钮后禁用它,以防止再次单击它。当页面重新加载时,javascript将被撤消,您可以再次点击。
-
@Gavin,问题是页面没有重新加载,表单动作直接返回zip文件。
-
@JayBlanchard Chris 正在使用该表单来启动文件下载。使用 Ajax 将只创建 zip 文件而不是下载。唯一的其他解决方案可能是使用 Ajax 创建 zip,然后返回该 zip 文件的路径作为响应,然后使用 Javascript 重定向?
标签: javascript jquery html unobtrusive-javascript