2011-03-18 57 views
2

我有一个窗体禁用提交按钮,单击它时。 但是,如果用户点击浏览器“停止”按钮怎么办。 然后他将无法重新提交表单。JavaScript - 检测浏览器停止按钮单击

有没有办法处理这种情况,可能检测到停止按钮按?

回答

2

什么是禁用提交按钮的原因是什么?

您试图避免双击? - >您可以在短时间内禁用提交按钮,在超时时重新启用它。

您正试图避免不耐烦的重新加载点击? - >相同,但是长时间不活动。

您试图停止一个表单两次提交导致重复操作发生? - >只有禁用按钮才能对抗这种情况,因为后退/前进将导致页面重新加载,可能会保留旧的表单内容,但不会禁用残疾状态,除非被bfcache短路。在这种情况下,您必须创建一次性使用的令牌或不能多次使用的新项目ID,并将其放在窗体的隐藏字段中。服务器可以检查它并禁止重复。

可能检测到停止按钮?

避免onstop,这不是真的可靠。除了浏览器支持问题外,它无法捕获导航和停止/重新加载等所有可能的组合。你永远不会知道服务器脚本得到了多少,它是否执行了一个动作。

1

最好的办法是检测服务器上的提交按钮,因此只能提交一次。这样,无论发生什么事情(萤火虫等),表单只会提交一次。有一个OnStop()事件,但它只是IE,我不会推荐使用它。

+0

根据应用程序的不同,在服务器上检测多个提交可能会非常复杂。 – Pointy 2011-03-18 20:20:21

相关问题