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 相关文章推荐
基于jquery中children()与find()的区别介绍
Apr 26 Javascript
jQuery中:eq()选择器用法实例
Dec 29 Javascript
Javascript中的Callback方法浅析
Mar 15 Javascript
jQuery validate插件实现ajax验证重复的2种方法
Jan 22 Javascript
AngularJS在IE下取数据总是缓存问题的解决方法
Aug 05 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(1)
Feb 20 Javascript
老生常谈ES6中的类
Jul 31 Javascript
layui表格 列自动适应大小失效的解决方法
Sep 06 Javascript
vue实现百度语音合成的实例讲解
Oct 14 Javascript
vue实现登录拦截
Jun 29 Javascript
vue商城中商品“筛选器”功能的实现代码
Jul 01 Javascript
解决VantUI popup 弹窗不弹出或无蒙层的问题
Nov 03 Javascript
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返回json数据函数实例
2014/10/09 PHP
laravel 5.3中自定义加密服务的方案详解
2017/05/09 PHP
一个不错的应用,用于提交获取文章内容,不推荐用
2007/03/03 Javascript
Jquery插件 easyUI属性汇总
2011/01/19 Javascript
jQuery实现锚点scoll效果实例分析
2015/03/10 Javascript
JS+CSS实现闪烁字体效果代码
2016/04/05 Javascript
再谈javascript注入 黑客必备!
2016/09/14 Javascript
Node.js与MySQL交互操作及其注意事项
2016/10/05 Javascript
JS自定义混合Mixin函数示例
2016/11/26 Javascript
jQuery加载及解析XML文件的方法实例分析
2017/01/22 Javascript
JS排序之快速排序详解
2017/04/08 Javascript
Bootstrap与Angularjs的模态框实例代码
2017/08/03 Javascript
微信小程序图片选择区域裁剪实现方法
2017/12/02 Javascript
基于JavaScript实现幸运抽奖页面
2020/07/05 Javascript
[原创]jQuery实现合并/追加数组并去除重复项的方法
2018/04/11 jQuery
Vue进度条progressbar组件功能
2018/04/17 Javascript
代码实例ajax实现点击加载更多数据图片
2018/10/12 Javascript
jQuery实现购物车的总价计算和总价传值功能
2018/11/28 jQuery
javascript实现遮罩层动态效果实例
2019/05/14 Javascript
JavaScript中判断为整数的多种方式及保留两位小数的方法
2019/09/09 Javascript
js、jquery实现列表模糊搜索功能过程解析
2020/03/27 jQuery
详解uniapp的全局变量实现方式
2021/01/11 Javascript
[55:47]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第三局
2016/02/27 DOTA
Python模拟百度登录实例详解
2016/01/20 Python
Python实现的三层BP神经网络算法示例
2018/02/07 Python
python获取网页中所有图片并筛选指定分辨率的方法
2018/03/31 Python
Python基于OpenCV实现人脸检测并保存
2019/07/23 Python
原生 JS+CSS+HTML 实现时序图的方法
2019/07/31 HTML / CSS
存储过程和sql语句的优缺点
2014/07/02 面试题
初级软件工程师面试题 Junior Software Engineer Interview
2015/02/15 面试题
节约用电标语
2014/06/17 职场文书
上课不认真检讨书
2014/09/17 职场文书
公司证明怎么写
2014/09/22 职场文书
英语四级考试作弊检讨书
2014/09/29 职场文书
Mysql数据库索引面试题(程序员基础技能)
2021/05/31 MySQL
Java spring定时任务详解
2021/10/05 Java/Android