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 相关文章推荐
js函数般调用正则
Apr 08 Javascript
JavaScript调用Activex控件的事件的实现方法
Apr 11 Javascript
js继承的实现代码
Aug 05 Javascript
JS HTML5 音乐天气播放器(Ajax获取天气信息)
May 26 Javascript
js下拉框二级关联菜单效果代码具体实现
Aug 03 Javascript
用Jquery实现滚动新闻
Feb 12 Javascript
JavaScript 里的类数组对象
Apr 08 Javascript
Javascript使用post方法提交数据实例
Aug 03 Javascript
javascript cookie用法基础教程(概念,设置,读取及删除)
Sep 20 Javascript
纯js实现的积木(div层)拖动功能示例
Jul 19 Javascript
详解关于表格合并span-method方法的补充(表格数据由后台动态返回)
May 21 Javascript
详解JavaScript中Arguments对象用途
Aug 30 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/06/26 PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
2017/06/27 PHP
PHP架构及原理知识点详解
2019/12/22 PHP
ASP.NET jQuery 实例8 (动态添加内容到DropDownList)
2012/02/03 Javascript
JS弹出窗口代码大全(详细整理)
2012/12/21 Javascript
javascript编码的几个方法详细介绍
2013/01/06 Javascript
onclick与listeners的执行先后问题详细解剖
2013/01/07 Javascript
基于JavaScript实现继承机制之调用call()与apply()的方法详解
2013/05/07 Javascript
纯Javascript实现Windows 8 Metro风格实现
2013/10/15 Javascript
javascript贪吃蛇完整版(源码)
2013/12/09 Javascript
js实现兼容性好的微软官网导航下拉菜单效果
2015/09/07 Javascript
微信jssdk用法汇总
2016/07/16 Javascript
react-router实现跳转传值的方法示例
2017/05/27 Javascript
微信小程序ajax实现请求服务器数据及模版遍历数据功能示例
2017/12/15 Javascript
Vuejs 单文件组件实例详解
2018/02/09 Javascript
JS绘图Flot如何实现可选显示曲线图功能
2020/10/16 Javascript
js面向对象封装级联下拉菜单列表的实现步骤
2021/02/08 Javascript
[01:20:37]FNATIC vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
用python代码做configure文件
2014/07/20 Python
Python随机生成彩票号码的方法
2015/03/05 Python
Python中Django 后台自定义表单控件
2017/03/28 Python
Python基础语言学习笔记总结(精华)
2017/11/14 Python
PyCharm 常用快捷键和设置方法
2017/12/20 Python
Python反射用法实例简析
2017/12/22 Python
Python中循环后使用list.append()数据被覆盖问题的解决
2018/07/01 Python
使用遗传算法求二元函数的最小值
2020/02/11 Python
python闭包、深浅拷贝、垃圾回收、with语句知识点汇总
2020/03/11 Python
使用python将微信image下.dat文件解密为.png的方法
2020/11/30 Python
css3遮罩层镂空效果的多种实现方法
2020/05/11 HTML / CSS
西班牙三叶草药房:Farmacias Trébol
2019/05/03 全球购物
办公室文员工作职责
2014/01/31 职场文书
市场部业务员岗位职责
2014/04/02 职场文书
促销活动总结报告
2014/04/26 职场文书
化工专业求职信
2014/07/01 职场文书
工作保证书怎么写
2015/02/28 职场文书
使用HTML+Css+transform实现3D导航栏的示例代码
2021/03/31 HTML / CSS