js防止表单重复提交的两种方法


Posted in Javascript onSeptember 30, 2013

第一种:用flag标识,下面的代码设置checkSubmitFlg标志:

<script language="”javascript”"> var checkSubmitFlg = false; 
function checkSubmit(){ 
if(checkSubmitFlg ==true){ return false; //当表单被提交过一次后checkSubmitFlg将变为true,根据判断将无法进行提交。 
} 
checkSubmitFlg ==true; 
return true; 
} 
< /script > 
< form name=”form1” method=”post” onsubmit=”return checkSubmit();”> 
………..< /form>

第二种:在onsubmit事件中设置,在第一次提交后使提交按钮失效,代码如下:
<form action=”about:blank” method=”post” onsubmit =”getElementById(‘submitInput').disabled=true;return true;” target=”_blank”> 
<input type=”submit” id=”submitInput”/> 
</form> 
</body> 
</html> 
</script>

因为程序源码跟WIN2000的注册表有冲突,帖子发出后会出现无效页面,以致于论坛里有很多无恶意的重复帖子,后来想出了一个办法,用JS避免重复提交,下面是部分源码:
<script Language='JavaScript'> 
function formsubmit() { 
Today = new Date(); 
var NowHour = Today.getHours(); 
var NowMinute = Today.getMinutes(); 
var NowSecond = Today.getSeconds(); 
var mysec = (NowHour*3600)+(NowMinute*60)+NowSecond; 
if((mysec-document.formsubmitf.mypretime.value)>600) 
//600只是一个时间值,就是5分钟内禁止重复提交,值随你高兴设 
{ 
document.formsubmitf.mypretime.value=mysec; 
} 
else 
{ 
alert(' 按一次就够了,请勿重复提交!请耐心等待!谢谢合作!'); 
return false; 
} 
document.forms.formsubmitf.submit(); 
} 
</script> </HEAD> 
<BODY BGCOLOR="#FFFFFF"> 
<form name=formsubmitf id ="the" method="post" action="XXX.asp"> 
<input type=hidden name='mypretime' value='0'> //这句不能少,用隐含变量传递一个时间初值 
//这里是你要提交的内容 
<input type="button" value="写好了" name="button1" class="4round" onclick='formsubmit()'> <font class="red">(请按一次,耐心等待!)</font> <input type="reset" value="重 写" name="button2" class="4round"> 
</form>

用了这个代码,论坛的重复帖子明显减少,不过有个缺点,就是刷新一次,检测就不起作用,好处就是利用JS检测,不需要额外的权限支持,至于效果如何,用不用就随你们了,(最好前端跟后端都加上检测)
Javascript 相关文章推荐
javascript 数组的方法集合
Jun 05 Javascript
多个jQuery版本共存的处理方案
Mar 17 Javascript
javascript日期格式化方法汇总
Oct 04 Javascript
快速获取/设置iframe内对象元素的几种js实现方法
May 20 Javascript
利用BootStrap的Carousel.js实现轮播图动画效果
Dec 21 Javascript
JavaScript实现打地鼠小游戏
Apr 23 Javascript
JavaScript实现跟随滚动缓冲运动广告框
Jul 15 Javascript
JavaScript数组排序reverse()和sort()方法详解
Dec 24 Javascript
node.js博客项目开发手记
Mar 16 Javascript
Postman环境变量全局变量使用方法详解
Aug 13 Javascript
JavaScript常用8种数组去重代码实例
Sep 09 Javascript
idea编译器vue缩进报错问题场景分析
Jul 04 Vue.js
js借助ActiveXObject实现创建文件
Sep 29 #Javascript
js获取URL的参数的方法(getQueryString)示例
Sep 29 #Javascript
在父页面调用子页面的JS方法
Sep 29 #Javascript
javascript完美拖拽的实现方法
Sep 29 #Javascript
jquery中focus()函数实现当对象获得焦点后自动把光标移到内容最后
Sep 29 #Javascript
js中的scroll和offset 使用比较的实例与分析
Sep 29 #Javascript
jquery判断RadioButtonList和RadioButton中是否有选中项示例
Sep 29 #Javascript
You might like
PHP中的加密功能
2006/10/09 PHP
PHP父类调用子类方法的代码例子
2014/04/09 PHP
详解使用php-cs-fixer格式化代码
2020/09/16 PHP
JavaScript进阶教程(第四课第一部分)
2007/04/05 Javascript
用showModalDialog弹出页面后,提交表单总是弹出一个新窗口
2009/07/18 Javascript
JS格式化数字金额用逗号隔开保留两位小数
2013/10/18 Javascript
js(JavaScript)实现TAB标签切换效果的简单实例
2014/02/26 Javascript
谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
2015/10/01 Javascript
SpringMVC restful 注解之@RequestBody进行json与object转换
2015/12/10 Javascript
详解JavaScript正则表达式之分组匹配及反向引用
2016/03/09 Javascript
js简单时间比较的方法
2016/08/02 Javascript
JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴
2016/10/28 Javascript
微信小程序开发(二)图片上传+服务端接收详解
2017/01/11 Javascript
javascript html5轻松实现拖动功能
2017/03/01 Javascript
node.js实现的装饰者模式示例
2017/09/06 Javascript
vue多次循环操作示例
2019/02/08 Javascript
angularjs1.X 重构controller 的方法小结
2019/08/15 Javascript
vue之延时刷新实例
2019/11/14 Javascript
浅析vue-router实现原理及两种模式
2020/02/11 Javascript
js实现简单点赞操作
2020/03/17 Javascript
python微信公众号之关注公众号自动回复
2018/10/25 Python
对Python中for复合语句的使用示例讲解
2018/11/01 Python
python实现两张图片的像素融合
2019/02/23 Python
python利用JMeter测试Tornado的多线程
2020/01/12 Python
python模拟预测一下新型冠状病毒肺炎的数据
2020/02/01 Python
python时间日期操作方法实例小结
2020/02/06 Python
django之导入并执行自定义的函数模块图解
2020/04/01 Python
使用python实现微信小程序自动签到功能
2020/04/27 Python
keras打印loss对权重的导数方式
2020/06/10 Python
基于 Python 实践感知器分类算法
2021/01/07 Python
什么是类的返射机制
2016/02/06 面试题
this关键字的含义
2015/04/08 面试题
物业管理工作方案
2014/05/10 职场文书
社会发展项目建议书
2014/08/25 职场文书
骨干教师考核评语
2014/12/31 职场文书
Python爬虫数据的分类及json数据使用小结
2021/03/29 Python