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 相关文章推荐
javascript 客户端验证上传图片的大小(兼容IE和火狐)
Aug 15 Javascript
javascript的propertyIsEnumerable()方法使用介绍
Apr 09 Javascript
node.js中的http.request方法使用说明
Dec 14 Javascript
jQuery中$.ajax()和$.getJson()同步处理详解
Aug 12 Javascript
js实现适用于素材网站的黑色多级菜单导航条效果
Aug 24 Javascript
详解Javascript事件驱动编程
Jan 03 Javascript
javascript history对象详解
Feb 09 Javascript
JS实现浏览器打印、打印预览示例
Feb 28 Javascript
vue中for循环更改数据的实例代码(数据变化但页面数据未变)
Sep 15 Javascript
详解微信小程序审核不通过的解决方法
Jan 17 Javascript
vue-cli3项目展示本地Markdown文件的方法
Jun 07 Javascript
详解JavaScript 高阶函数
Sep 14 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
PHP中使用socket方式GET、POST数据实例
2015/04/02 PHP
PHP实现对文件锁进行加锁、解锁操作的方法
2017/07/04 PHP
在laravel中使用with实现动态添加where条件
2019/10/10 PHP
toggle()隐藏问题的解决方法
2014/02/17 Javascript
JavaScript二维数组实现的省市联动菜单
2014/05/08 Javascript
jquery中$each()方法的使用指南
2015/04/30 Javascript
js实现简单的联动菜单效果
2015/08/19 Javascript
AngularJS入门教程之静态模板详解
2016/08/18 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
2016/08/24 Javascript
利用JS屏蔽页面中的Enter按键提交表单的方法
2016/11/25 Javascript
Vue.js实例方法之生命周期详解
2017/07/03 Javascript
webpack4.0 入门实践教程
2018/10/08 Javascript
Vue动态面包屑功能的实现方法
2019/07/01 Javascript
javascript关于“时间”的一次探索
2019/07/24 Javascript
Vue2.0实现简单分页及跳转效果
2019/07/29 Javascript
详解Vue-cli3.X使用px2rem遇到的问题
2019/08/09 Javascript
vue proxy 的优势与使用场景实现
2020/06/15 Javascript
js实现计算器功能
2020/08/10 Javascript
原生JS实现音乐播放器
2021/01/26 Javascript
原生js实现九宫格拖拽换位
2021/01/26 Javascript
[02:52]2017DOTA2国际邀请赛中国区预选赛晋级之路
2017/07/03 DOTA
python的文件操作方法汇总
2017/11/10 Python
神经网络python源码分享
2017/12/15 Python
详解Python nose单元测试框架的安装与使用
2017/12/20 Python
浅谈flask截获所有访问及before/after_request修饰器
2018/01/18 Python
Python基于更相减损术实现求解最大公约数的方法
2018/04/04 Python
详解Python下载图片并保存本地的两种方式
2019/05/15 Python
Django框架登录加上验证码校验实现验证功能示例
2019/05/23 Python
CSS3弹性伸缩布局之box布局
2016/07/12 HTML / CSS
Fashion Eyewear美国:英国线上设计师眼镜和太阳镜的零售商
2016/08/15 全球购物
天美时手表加拿大官网:Timex加拿大
2016/09/01 全球购物
大众服装店创业计划书范文
2014/01/01 职场文书
求职信范文英文版
2014/01/05 职场文书
创建市级文明单位实施方案
2014/03/01 职场文书
简历中个人自我评价分享
2014/03/15 职场文书
推广活动策划方案
2014/08/23 职场文书