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 相关文章推荐
JavaScipt基本教程之JavaScript语言的基础
Jan 16 Javascript
保证JavaScript和Asp、Php等后端程序间传值编码统一
Apr 17 Javascript
JavaScript 序列化对象实现代码
Dec 18 Javascript
Jquery刷新页面背景图片随机变换的实现方法
Mar 15 Javascript
Egret引擎开发指南之发布项目
Sep 03 Javascript
js不能获取隐藏的div的宽度只能先显示后获取
Sep 04 Javascript
一波JavaScript日期判断脚本分享
Mar 06 Javascript
JavaScript ES6的新特性使用新方法定义Class
Jun 28 Javascript
AngularJS基础 ng-options 指令详解
Aug 02 Javascript
vue.js实现价格格式化的方法
May 23 Javascript
jQuery实现页码跳转式动态数据分页
Dec 31 jQuery
使用JavaScript计算前一天和后一天的思路详解
Dec 20 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
一个简单实现多条件查询的例子
2006/10/09 PHP
redirect_uri参数错误的解决方法(必看)
2017/02/16 PHP
PHP异常类及异常处理操作实例详解
2018/12/19 PHP
ExtJS 2.0实用简明教程 之ExtJS版的Hello
2009/04/29 Javascript
JQuery中阻止事件冒泡几种方式及其区别介绍
2014/01/15 Javascript
JS中操作JSON总结
2020/12/06 Javascript
javascript实现行拖动的方法
2015/05/27 Javascript
nodejs 实现钉钉ISV接入的加密解密方法
2017/01/16 NodeJs
JS ES6中setTimeout函数的执行上下文示例
2017/04/27 Javascript
JavaScript this绑定过程深入详解
2018/12/07 Javascript
详解微信小程序动画Animation执行过程
2020/09/23 Javascript
Python实现从百度API获取天气的方法
2015/03/11 Python
Django应用程序中如何发送电子邮件详解
2017/02/04 Python
django定期执行任务(实例讲解)
2017/11/03 Python
Django的HttpRequest和HttpResponse对象详解
2018/01/26 Python
Python3之简单搭建自带服务器的实例讲解
2018/06/04 Python
Python使用Pickle库实现读写序列操作示例
2018/06/15 Python
Flask web开发处理POST请求实现(登录案例)
2018/07/26 Python
python的pygal模块绘制反正切函数图像方法
2019/07/16 Python
django连接oracle时setting 配置方法
2019/08/29 Python
详解Python3 pandas.merge用法
2019/09/05 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
2020/02/19 Python
python 写一个性能测试工具(一)
2020/10/24 Python
Stylenanda中文站:韩国一线网络服装品牌
2016/12/22 全球购物
Argos官网:英国家喻户晓的百货零售连锁商
2017/04/03 全球购物
潘多拉珠宝英国官方网上商店:PANDORA英国
2018/06/12 全球购物
最受欢迎的自我评价
2013/12/22 职场文书
购房协议书
2014/04/11 职场文书
产品销售计划书
2014/05/04 职场文书
竞聘上岗演讲稿
2014/05/16 职场文书
民事诉讼授权委托书范文
2014/08/02 职场文书
教师党员自我评价2015
2015/03/04 职场文书
2015年爱牙日活动总结
2015/03/23 职场文书
学习经验交流会策划书
2015/11/02 职场文书
Python爬虫基础讲解之请求
2021/05/13 Python
JS轻量级函数式编程实现XDM二
2022/06/16 Javascript