JavaScript禁止用户多次提交的两种方法


Posted in Javascript onJuly 24, 2016

【当服务器超载时,会出现提交卡顿的现象,但是用户在操作时,会不停重复点击提交,会造成服务器压力更大。所以我们需要进行限制】

[1]将提交按钮禁止

<html>
<head>


<script>



//禁止默认行为  因为这里要模拟服务器超载的时候,所以需要先禁止掉submit按钮自动提交的功能


function preventDef(event){



event=event||window.event;



if(event.preventDefault){




return event.preventDefault;




}else{




 return event.returnValue=false;




}



}


window.onload=function(){


var form=document.getElementsByTagName('form')[0];


//获取到form元素


var txt=form.elements['txt'];









//获取到name属性为txt的表单元素


var sub=form.elements['sub'];









//获取到name属性为sub的表单元素


form.onsubmit=function(event){








//创建一个提交事件,因为submit是form来提交事件的,所以我们要禁止也需要通过form来禁止



event=event || window.event;












preventDef(event);










//禁止掉默认提交行为



sub.disabled=true

//第一种就是在用户提交完之后,将按钮禁用不再让用户提交,等待提交完毕之后再释放按钮







setTimeout(function(){









//模拟5秒钟后再提交



form.submit()},5000);


}
 
}


</script>

</head>

<body>


<form id="form">



<input type="text" id="txt" name="txt">



<input type="submit" id="sub">


</form>

</body>
</html>

[第二种 创建一个变量进行判断]

[1]将提交按钮禁止

<html>
<head>


<script>



//禁止默认行为  因为这里要模拟服务器超载的时候,所以需要先禁止掉submit按钮自动提交的功能


function preventDef(event){



event=event||window.event;



if(event.preventDefault){




return event.preventDefault;




}else{




 return event.returnValue=false;




}



}


window.onload=function(){


var form=document.getElementsByTagName('form')[0];


//获取到form元素


var txt=form.elements['txt'];









//获取到name属性为txt的表单元素


var sub=form.elements['sub'];









//获取到name属性为sub的表单元素


var flag=true;













//先创建一个变量,表示默认的时候用户还没点击提交


form.onsubmit=function(event){








//创建一个提交事件,因为submit是form来提交事件的,所以我们要禁止也需要通过form来禁止



event=event || window.event;












preventDef(event);










//禁止掉默认提交行为
 


if(flag==true){





flag=false;









//表示用户已经点击过提交按钮



}else{




alert('正在提交,请勿重复提交');








}







setTimeout(function(){









//模拟5秒钟后再提交



form.submit()},5000);


}
}


</script>

</head>

<body>


<form id="form">



<input type="text" id="txt" name="txt">



<input type="submit" id="sub">


</form>

</body>
</html>

JavaScript禁止用户多次提交的两种方法

【当服务器超载时,会出现提交卡顿的现象,但是用户在操作时,会不停重复点击提交,会造成服务器压力更大。所以我们需要进行限制】

[1]将提交按钮禁止

<html>
<head>


<script>



//禁止默认行为  因为这里要模拟服务器超载的时候,所以需要先禁止掉submit按钮自动提交的功能


function preventDef(event){



event=event||window.event;



if(event.preventDefault){




return event.preventDefault;




}else{




 return event.returnValue=false;




}



}


window.onload=function(){


var form=document.getElementsByTagName('form')[0];


//获取到form元素


var txt=form.elements['txt'];









//获取到name属性为txt的表单元素


var sub=form.elements['sub'];









//获取到name属性为sub的表单元素


form.onsubmit=function(event){








//创建一个提交事件,因为submit是form来提交事件的,所以我们要禁止也需要通过form来禁止



event=event || window.event;












preventDef(event);










//禁止掉默认提交行为



sub.disabled=true

//第一种就是在用户提交完之后,将按钮禁用不再让用户提交,等待提交完毕之后再释放按钮







setTimeout(function(){









//模拟5秒钟后再提交



form.submit()},5000);


}
 
}


</script>

</head>

<body>


<form id="form">



<input type="text" id="txt" name="txt">



<input type="submit" id="sub">


</form>

</body>
</html>

[第二种 创建一个变量进行判断]

[1]将提交按钮禁止

<html>
<head>


<script>



//禁止默认行为  因为这里要模拟服务器超载的时候,所以需要先禁止掉submit按钮自动提交的功能


function preventDef(event){



event=event||window.event;



if(event.preventDefault){




return event.preventDefault;




}else{




 return event.returnValue=false;




}



}


window.onload=function(){


var form=document.getElementsByTagName('form')[0];


//获取到form元素


var txt=form.elements['txt'];









//获取到name属性为txt的表单元素


var sub=form.elements['sub'];









//获取到name属性为sub的表单元素


var flag=true;













//先创建一个变量,表示默认的时候用户还没点击提交


form.onsubmit=function(event){








//创建一个提交事件,因为submit是form来提交事件的,所以我们要禁止也需要通过form来禁止



event=event || window.event;












preventDef(event);










//禁止掉默认提交行为
 


if(flag==true){





flag=false;









//表示用户已经点击过提交按钮



}else{




alert('正在提交,请勿重复提交');








}







setTimeout(function(){









//模拟5秒钟后再提交



form.submit()},5000);


}
}


</script>

</head>

<body>


<form id="form">



<input type="text" id="txt" name="txt">



<input type="submit" id="sub">


</form>

</body>
</html>

以上所述是小编给大家介绍的JavaScript禁止用户多次提交的两种方法的相关资料,希望对大家有所帮助!

Javascript 相关文章推荐
js jquery做的图片连续滚动代码
Jan 06 Javascript
js为鼠标添加右击事件防止默认的右击菜单弹出
Jul 29 Javascript
Javascript中Event属性搜集整理
Sep 17 Javascript
jQuery自动完成插件completer附源码下载
Jan 04 Javascript
js仿3366小游戏选字游戏
Apr 14 Javascript
bootstrap vue.js实现tab效果
Feb 07 Javascript
纯js实现动态时间显示
Sep 07 Javascript
vue.js中v-on:textInput无法执行事件问题的解决过程
Jul 12 Javascript
JavaScript基于面向对象实现的猜拳游戏
Jan 03 Javascript
提升node.js中使用redis的性能遇到的问题及解决方法
Oct 30 Javascript
引入外部js脚本加载慢与页面白屏问题的解决
Dec 10 Javascript
深入了解js原型模式
May 30 Javascript
JavaScript表单焦点自动切换代码
Jul 24 #Javascript
javascript中sort排序实例详解
Jul 24 #Javascript
深入理解javascript作用域第二篇之词法作用域和动态作用域
Jul 24 #Javascript
关于input全选反选恶心的异常情况
Jul 24 #Javascript
JS中的==运算: [''] == false —&gt;true
Jul 24 #Javascript
JavaScript关于提高网站性能的几点建议(一)
Jul 24 #Javascript
JavaScript提高网站性能优化的建议(二)
Jul 24 #Javascript
You might like
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
2010/10/12 PHP
mysql alter table命令修改表结构实例详解
2016/09/24 PHP
php 查找数组元素提高效率的方法详解
2017/05/05 PHP
PHP+ajax实现获取新闻数据简单示例
2018/05/08 PHP
PHP使用HTML5 FileApi实现Ajax上传文件功能示例
2019/07/01 PHP
laravel 关联关系遍历数组的例子
2019/10/10 PHP
从父页面读取和操作iframe中内容方法
2009/07/25 Javascript
javascript GUID生成器实现代码
2009/10/31 Javascript
Array.prototype.slice.apply的使用方法
2010/03/17 Javascript
使用ExtJS技术实现的拖动树结点
2010/08/05 Javascript
在每个匹配元素的外部插入新元素的方法
2013/12/20 Javascript
jQuery实现的手机发送验证码倒计时效果代码分享
2015/08/24 Javascript
JS实现部分HTML固定页面顶部随屏滚动效果
2015/12/24 Javascript
JavaScript实现输入框与清空按钮联动效果
2016/09/09 Javascript
JS 实现计算器详解及实例代码(一)
2017/01/08 Javascript
微信小程序页面间通信的5种方式
2017/03/31 Javascript
Angularjs 事件指令详细整理
2017/07/27 Javascript
详解在Vue中有条件地使用CSS类
2017/09/30 Javascript
JavaScript修改注册表实例代码
2020/01/05 Javascript
分享Python字符串关键点
2015/12/13 Python
Python 文件操作的详解及实例
2017/09/18 Python
Django-Rest-Framework 权限管理源码浅析(小结)
2018/11/12 Python
PySide和PyQt加载ui文件的两种方法
2019/02/27 Python
git查看、创建、删除、本地、远程分支方法详解
2020/02/18 Python
使用phonegap克隆和删除联系人的实现方法
2017/03/31 HTML / CSS
屈臣氏菲律宾官网:Watsons菲律宾
2020/06/30 全球购物
保护环境标语
2014/06/09 职场文书
大学生在校表现评语
2014/12/31 职场文书
银行自荐信范文
2015/03/25 职场文书
药店营业员岗位职责
2015/04/14 职场文书
幼儿园开学通知
2015/04/24 职场文书
2015年大学班主任工作总结
2015/04/30 职场文书
2015年妇产科工作总结
2015/05/18 职场文书
民事二审代理词
2015/05/25 职场文书
百家讲坛观后感
2015/06/12 职场文书
入党申请书怎么写?
2019/06/21 职场文书