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 相关文章推荐
验证用户是否修改过页面的数据的实现方法
Sep 26 Javascript
iframe 父窗口和子窗口相互的调用方法集锦
Dec 15 Javascript
js与jquery获取父级元素,子级元素,兄弟元素的实现方法
Jan 09 Javascript
jquery 淡入淡出效果的简单实现
Feb 07 Javascript
jquery 实现返回顶部功能
Nov 17 Javascript
JavaScript让网页出现渐隐渐显背景颜色的方法
Apr 21 Javascript
Bootstrap布局之栅格系统详解
Jun 13 Javascript
jQuery实现下拉框多选 jquery-multiselect 的实例代码
Jul 14 Javascript
javascript实现消灭星星小游戏简单版
Nov 15 Javascript
JS常用加密编码与算法实例总结
Dec 22 Javascript
ES6函数实现排它两种写法解析
May 13 Javascript
详解为什么Vue中的v-if和v-for不建议一起用
Jan 13 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
构建简单的Webmail系统
2006/10/09 PHP
php小技巧 把数组的键和值交换形成了新的数组,查找值取得键
2011/06/02 PHP
PHP实现在线阅读PDF文件的方法
2015/06/23 PHP
thinkPHP框架实现图像裁剪、缩放、加水印的方法
2017/03/14 PHP
jQuery ajax+PHP实现的级联下拉列表框功能示例
2019/02/12 PHP
js cookies实现简单统计访问次数
2009/11/24 Javascript
javascript模拟的Ping效果代码 (Web Ping)
2011/03/13 Javascript
再说AutoComplete自动补全之实现原理
2011/11/05 Javascript
打豆豆小游戏 用javascript编写的[打豆豆]小游戏
2013/01/08 Javascript
jquery获取一个元素下面相同子元素的个数代码
2014/07/31 Javascript
解决jquery插件:TypeError:$.browser is undefined报错的方法
2015/11/21 Javascript
AngularJS ng-change 指令的详解及简单实例
2016/07/30 Javascript
AngularJs bootstrap详解及示例代码
2016/09/01 Javascript
JavaScript基于DOM操作实现简单的数学运算功能示例
2017/01/16 Javascript
深入理解Javascript中的观察者模式
2017/02/20 Javascript
jQuery判断网页是否已经滚动到浏览器底部的实现方法
2017/10/27 jQuery
vue v-model实现自定义样式多选与单选功能
2018/07/05 Javascript
CryptoJS中AES实现前后端通用加解密技术
2018/12/18 Javascript
浅谈KOA2 Restful方式路由初探
2019/03/14 Javascript
JavaScript鼠标悬停事件用法解析
2020/05/15 Javascript
python web框架Flask实现图形验证码及验证码的动态刷新实例
2019/10/14 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
2020/02/04 Python
Selenium及python实现滚动操作多种方法
2020/07/21 Python
一张图片能隐含千言万语之隐藏你的程序代码
2012/12/13 HTML / CSS
Kappa英国官方在线商店:服装和运动器材
2020/11/22 全球购物
小学音乐教学反思
2014/02/05 职场文书
监察建议书范文
2014/03/12 职场文书
教室标语大全
2014/06/21 职场文书
财政专业大学生职业生涯规划书
2014/09/17 职场文书
2015年度护士个人工作总结
2015/04/09 职场文书
2015年学校安全管理工作总结
2015/05/11 职场文书
2016年师德学习心得体会
2016/01/12 职场文书
合作合同协议书
2016/03/21 职场文书
python编写函数注意事项总结
2021/03/29 Python
在Windows下安装配置CPU版的PyTorch的方法
2021/04/02 Python
如何Tomcat中使用ipv6地址
2022/05/06 Servers