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延迟加载(setTimeout) JS最后加载
Jul 15 Javascript
Ext修改GridPanel数据和字体颜色、css属性等
Jun 13 Javascript
javascript的列表切换【实现代码】
May 03 Javascript
关于微信上网页图片点击全屏放大效果
Dec 19 Javascript
原生js实现放大镜效果
Jan 11 Javascript
谈谈Vue.js——vue-resource全攻略
Jan 16 Javascript
jQuery插件Echarts实现的双轴图效果示例【附demo源码下载】
Mar 04 Javascript
JavaScript模拟实现封装的三种方式及写法区别
Oct 27 Javascript
React中嵌套组件与被嵌套组件的通信过程
Jul 11 Javascript
Vue 实时监听窗口变化 windowresize的两种方法
Nov 06 Javascript
javascript实现自由编辑图片代码详解
Jun 21 Javascript
JavaScript逻辑运算符相关总结
Sep 04 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
VFP与其他应用程序的集成
2006/10/09 PHP
php4的session功能评述(二)
2006/10/09 PHP
Zend 输出产生XML解析错误
2009/03/03 PHP
Windows下XDebug 手工配置与使用说明
2010/07/11 PHP
PHP 常用数组内部函数(Array Functions)介绍
2013/06/05 PHP
php判断输入是否是纯数字,英文,汉字的方法
2015/03/05 PHP
PHP实现批量删除(封装)
2017/04/28 PHP
PHP编程实现脚本异步执行的方法
2017/08/09 PHP
详解PHP版本兼容之openssl调用参数
2018/07/25 PHP
php字符串过滤strip_tags()函数用法实例分析
2019/06/24 PHP
js截取固定长度的中英文字符的简单实例
2013/11/22 Javascript
JavaScript获取表单enctype属性的方法
2015/04/02 Javascript
javascript制作的滑动图片菜单
2015/05/15 Javascript
JavaScript里 ==与===区别详解
2016/08/16 Javascript
提高Web性能的前端优化技巧总结
2017/02/27 Javascript
javascript数组去重常用方法实例分析
2017/04/11 Javascript
学习使用Bootstrap页面排版样式
2017/05/11 Javascript
CSS3结合jQuery实现动画效果及回调函数的实例
2017/12/27 jQuery
详解使用VueJS开发项目中的兼容问题
2018/08/02 Javascript
nvm、nrm、npm 安装和使用详解(小结)
2019/01/17 Javascript
利用vue重构有赞商城的思路以及总结整理
2019/02/21 Javascript
关于vue表单提交防双/多击的例子
2019/10/31 Javascript
Python中实现最小二乘法思路及实现代码
2018/01/04 Python
解决python中用matplotlib画多幅图时出现图形部分重叠的问题
2019/07/07 Python
python的一些加密方法及python 加密模块
2019/07/11 Python
浅谈python3 构造函数和析构函数
2020/03/12 Python
pyinstaller打包找不到文件的问题解决
2020/04/15 Python
阿迪达斯印尼官方网站:adidas印尼
2020/02/10 全球购物
精伦电子Java笔试题
2013/01/16 面试题
《九寨沟》教学反思
2014/04/08 职场文书
安全目标管理责任书
2014/07/25 职场文书
2014年置业顾问工作总结
2014/11/17 职场文书
外出学习心得体会范文
2016/01/18 职场文书
SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用
2021/06/30 SQL Server
【海涛解说】暗牧也疯狂,牛蛙成配角
2022/04/01 DOTA
使用ICOM IC-R9500接收机同时测评十台收音机中波接收性能
2022/05/10 无线电