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 相关文章推荐
Web 前端设计模式--Dom重构 提高显示性能
Oct 22 Javascript
JavaScript NaN和Infinity特殊值 [译]
Sep 20 Javascript
JS+CSS实现一个气泡提示框
Aug 18 Javascript
JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法
Apr 18 Javascript
ES6中的数组扩展方法
Aug 26 Javascript
javascript简单进制转换实现方法
Nov 24 Javascript
js cookie实现记住密码功能
Jan 17 Javascript
javascript基础练习之翻转字符串与回文
Feb 20 Javascript
微信小程序实现登录页云层漂浮的动画效果
May 05 Javascript
vue.js的安装方法
May 12 Javascript
layer弹窗插件操作方法详解
May 19 Javascript
Layui数据表格 前后端json数据接收的方法
Sep 19 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中SESSION的注销与清除
2015/04/16 PHP
php实现模拟登陆方正教务系统抓取课表
2015/05/19 PHP
ThinkPHP实现更新数据实例详解(demo)
2016/06/29 PHP
PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID
2016/11/25 PHP
JSON.parse 解析字符串出错的解决方法
2010/07/08 Javascript
jquery入门—选择器实现隔行变色实例代码
2013/01/04 Javascript
js导出table数据到excel即导出为EXCEL文档的方法
2013/10/10 Javascript
javascript 获取元素样式必杀技
2014/05/04 Javascript
基于JavaScript实现一定时间后去执行一个函数
2015/12/14 Javascript
基于javascript实现最简单的选项卡切换效果
2016/05/16 Javascript
Jquery遍历select option和添加移除option的实现方法
2016/08/26 Javascript
dropload.js插件下拉刷新和上拉加载使用详解
2017/10/20 Javascript
Angular 4中如何显示内容的CSS样式示例代码
2017/11/06 Javascript
重新认识vue之事件阻止冒泡的实现
2018/08/02 Javascript
vuex根据不同的用户权限展示不同的路由列表功能
2019/09/20 Javascript
[56:21]LGD vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python递归打印某个目录的内容(实例讲解)
2017/08/30 Python
Python操作mongodb数据库进行模糊查询操作示例
2018/06/09 Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
2019/03/01 Python
opencv3/C++实现视频背景去除建模(BSM)
2019/12/11 Python
python 实现让字典的value 成为列表
2019/12/16 Python
如何基于python实现脚本加密
2019/12/28 Python
python设置环境变量的作用整理
2020/02/17 Python
利用python实现凯撒密码加解密功能
2020/03/31 Python
基于python实现matlab filter函数过程详解
2020/06/08 Python
详解基于canvas的视频遮罩插件
2018/01/04 HTML / CSS
高尔夫球鞋、服装、手套和装备:FootJoy
2018/12/15 全球购物
在职研究生自我鉴定
2013/10/16 职场文书
优秀学生党员先进事迹材料
2014/05/29 职场文书
委托书英文
2015/01/28 职场文书
撤诉申请怎么写
2015/05/19 职场文书
go:垃圾回收GC触发条件详解
2021/04/24 Golang
Redis源码阅读:Redis字符串SDS详解
2021/07/15 Redis
一文了解MySQL二级索引的查询过程
2022/02/24 MySQL
springboot应用服务启动事件的监听实现
2022/04/06 Java/Android
Python内置包对JSON文件数据进行编码和解码
2022/04/12 Python