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 相关文章推荐
如何实现浏览器上的右键菜单
Jul 10 Javascript
js中if语句的几种优化代码写法
Mar 12 Javascript
javascript中length属性的探索
Jul 31 Javascript
JS实现为表格动态添加标题的方法
Mar 31 Javascript
jQuery插件datalist实现很好看的input下拉列表
Jul 14 Javascript
浅谈JavaScript中数组的增删改查
Jun 20 Javascript
js 将input框中的输入自动转化成半角大写(税号输入框)
Feb 16 Javascript
koa-router源码学习小结
Sep 07 Javascript
layer ui 导入文件之前传入数据的实例
Sep 23 Javascript
微信小程序之左右布局的实现代码
Dec 13 Javascript
解决vuex改变了state的值,但是页面没有更新的问题
Nov 12 Javascript
jQuery实现查看图片功能
Dec 01 jQuery
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生成静态页面详解
2006/11/19 PHP
CI框架简单邮件发送类实例
2016/05/18 PHP
爆炸式的JS圆形浮动菜单特效代码
2010/03/03 Javascript
jQuery 属性选择器element[herf*='value']使用示例
2013/10/20 Javascript
使用CSS3的scale实现网页整体缩放
2014/03/18 Javascript
jQuery中size()方法用法实例
2014/12/27 Javascript
Prototype框架详解
2015/11/25 Javascript
微信开发 js实现tabs选项卡效果
2016/10/28 Javascript
Vue精简版风格指南(推荐)
2018/01/30 Javascript
详解如何在微信小程序中愉快地使用sass
2018/07/30 Javascript
mpvue小程序仿qq左滑置顶删除组件
2018/08/03 Javascript
React中使用UEditor百度富文本的方法
2018/08/22 Javascript
js实现鼠标拖拽div左右滑动
2020/01/15 Javascript
vue实现前端列表多条件筛选
2020/10/26 Javascript
实例讲解Python中SocketServer模块处理网络请求的用法
2016/06/28 Python
matplotlib作图添加表格实例代码
2018/01/23 Python
python字符串与url编码的转换实例
2018/05/10 Python
python操作excel的包(openpyxl、xlsxwriter)
2018/06/11 Python
python将字符串以utf-8格式保存在txt文件中的方法
2018/10/30 Python
python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
2019/04/18 Python
python3中property使用方法详解
2019/04/23 Python
python递归法解决棋盘分割问题
2019/07/17 Python
python json.dumps中文乱码问题解决
2020/04/01 Python
Python3内置函数chr和ord实现进制转换
2020/06/05 Python
详解基于Facecognition+Opencv快速搭建人脸识别及跟踪应用
2021/01/21 Python
HTML5到底会有什么发展?HTML5的前景展望
2015/07/07 HTML / CSS
美国女性运动零售品牌:Lady Foot Locker
2017/05/12 全球购物
美国运动鞋类和服装零售连锁店:Shoe Palace
2019/08/13 全球购物
阿联酋最好的手机、电子产品和家用电器网上商店:Eros Digital Home
2020/08/09 全球购物
幼儿教师自我鉴定
2013/11/02 职场文书
地球物理学专业推荐信
2014/09/08 职场文书
交心谈心活动总结
2015/05/11 职场文书
Python max函数中key的用法及原理解析
2021/06/26 Python
分析Java中Map的遍历性能问题
2021/06/26 Java/Android
css filter和getUserMedia的联合使用
2022/02/24 HTML / CSS
python工具dtreeviz决策树可视化和模型可解释性
2022/03/03 Python