如何防止表单的重复提交...
问题分析:
1、你怎么知道提交的表单是重复的?2、确认了表单是重复的,如何去防止被提交...问题解答:
1、个人认为:对同一个表单做了相同的重复操作...就认为是重复表单...也即每次提交表单的内容是相同的就认为是重复的...2、解决办法: js解决:(1)对按钮进行控制var $button = document.getElementById("btn");//获取button对象 $button.attr("disabled","disabled"); window.setTimeout(function(){ $button.removeAttr("disabled");},1000);
当然这么操作的前提是,你在disbaled后,要对表单进行处理,比如清空操作...
(2)做状态位进行标识...
疑问:做这种标识,如何判断你是换了另一个表单...
(3)加验证码,在每次提交时进行验证...防止重复提交..
后台程序解决:
大概主要用到一个token机制.. 可以参考struts2的token机制,还有Token Session(令牌机制) 在每次表单提交时,action会调用isValidToken()方法,进行判断是否相同的token,如果相同, 进行提交,如果不同,认为是重复提交..当然这种前提是: 在你打开新增表单的时候,会调用action,生成token码..然后在你的表单和session中各保存一份,当提交调用action时,会进行token检查,并且在action处理完后,会重置session 中的token,此时你再提交,就会导致token不一致,没法提交...当然...意思就是要重新调用action生成新的token,和session保持一致...