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实现无刷新更新数据的详细步骤 asp
Dec 26 Javascript
一份老外写的XMLHttpRequest代码多浏览器支持兼容性
Jan 11 Javascript
JavaScript游戏之是男人就下100层代码打包
Nov 08 Javascript
jQuery实现仿淘宝带有指示条的图片转动切换效果完整实例
Mar 04 Javascript
javascript中的后退和刷新实现方法
Nov 10 Javascript
fckeditor部署到weblogic出现xml无法读取及样式不能显示问题的解决方法
Mar 24 Javascript
详解vue-router和vue-cli以及组件之间的传值
Jul 04 Javascript
详解Vue路由钩子及应用场景(小结)
Nov 07 Javascript
JS实现的ajax和同源策略(实例讲解)
Dec 01 Javascript
去掉vue 中的代码规范检测两种方法(Eslint验证)
Mar 21 Javascript
微信小程序全局变量改变监听的实现方法
Jul 15 Javascript
jQuery+PHP+Ajax实现动态数字统计展示功能
Dec 25 jQuery
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
让Json更懂中文(JSON_UNESCAPED_UNICODE)
2011/10/27 PHP
php格式输出文件var_export函数实例
2014/11/15 PHP
PHP中定义数组常量(array常量)的方法
2014/11/17 PHP
php将12小时制转换成24小时制的方法
2015/03/31 PHP
如何使用php实现评委评分器
2015/07/31 PHP
详解PHP中的null合并运算符
2015/12/30 PHP
php设计模式之建造器模式分析【星际争霸游戏案例】
2020/01/23 PHP
javascript parseInt 大改造
2009/09/27 Javascript
原生JavaScript实现连连看游戏(附源码)
2013/11/05 Javascript
JavaScript中判断页面关闭、页面刷新的实现代码
2014/08/27 Javascript
javascript中动态函数用法实例分析
2015/05/14 Javascript
jquery插件unobtrusive实现片段式加载
2015/06/15 Javascript
JavaScript事件冒泡与事件捕获实例分析
2018/08/01 Javascript
详解如何在Vue里建立长按指令
2018/08/20 Javascript
快速解决vue-cli在ie9+中无效的问题
2018/09/04 Javascript
AJAX在JQuery中的应用详解
2019/01/30 jQuery
JQuery发送ajax请求时中文乱码问题解决
2019/11/14 jQuery
react实现复选框全选和反选组件效果
2020/08/25 Javascript
JS如何判断对象是否包含某个属性
2020/08/29 Javascript
Python的GUI框架PySide的安装配置教程
2016/02/16 Python
Python学习_几种存取xls/xlsx文件的方法总结
2018/05/03 Python
python判断计算机是否有网络连接的实例
2018/12/15 Python
pow在python中的含义及用法
2019/07/11 Python
flask利用flask-wtf验证上传的文件的方法
2020/01/17 Python
python图形开发GUI库pyqt5的基本使用方法详解
2020/02/14 Python
Python bytes string相互转换过程解析
2020/03/05 Python
Keras搭建自编码器操作
2020/07/03 Python
HTML5有哪些新特征
2015/12/01 HTML / CSS
CLR与IL分别是什么含义
2016/08/23 面试题
关于圣诞节的广播稿
2014/01/26 职场文书
火车来了教学反思
2014/02/11 职场文书
门前三包责任书
2014/04/15 职场文书
员工趣味活动方案
2014/08/27 职场文书
对党的十八届四中全会的期盼
2014/10/17 职场文书
全国法院系统开展党的群众路线教育实践活动综述(全文)
2014/10/25 职场文书
重阳节活动主持词
2015/07/04 职场文书