避免表单的重复提交又一方法(js)

以前自己的论坛因为程序源码跟WIN2000的注册表有冲突,帖子发出后会出现无效页面,以致于论坛里有很多无恶意的重复帖子,后来想出了一个办法,用JS避免重复提交,下面是部分源码:

 1<script language="JavaScript">   
 2function formsubmit() {   
 3Today = new Date();   
 4var NowHour = Today.getHours();   
 5var NowMinute = Today.getMinutes();   
 6var NowSecond = Today.getSeconds();   
 7var mysec = (NowHour*3600)+(NowMinute*60)+NowSecond;   
 8if((mysec-document.formsubmitf.mypretime.value)>600)   
 9//600只是一个时间值,就是5分钟内禁止重复提交,值随你高兴设   
10{   
11document.formsubmitf.mypretime.value=mysec;   
12}   
13else   
14{   
15alert(' 按一次就够了,请勿重复提交!请耐心等待!谢谢合作!');   
16return false;   
17}   
18document.forms.formsubmitf.submit();   
19}   
20</script>
 1<body bgcolor="#FFFFFF">
 2<form action="XXX.asp" id="the" method="post" name="formsubmitf">
 3<input name="mypretime" type="hidden" value="0"/> //这句不能少,用隐含变量传递一个时间初值   
 4  
 5//这里是你要提交的内容   
 6  
 7<input class="4round" name="button1" onclick="formsubmit()" type="button" value="写好了"/> <font class="red">(请按一次,耐心等待!)</font> <input class="4round" name="button2" type="reset" value="重 写"/>
 8</form>   
 9  
10用了这个代码,论坛的重复帖子明显减少,不过有个缺点,就是刷新一次,检测就不起作用,好处就是利用JS检测,不需要额外的权限支持,至于效果如何,用不用就随你们了,(最好前端跟后端都加上检测)</body>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus