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 函数parseInt()转换时出现bug问题
May 20 Javascript
JQuery插件iScroll实现下拉刷新,滚动翻页特效
Jun 22 Javascript
JavaScript函数作用域链分析
Feb 13 Javascript
BootStrap 动态添加验证项和取消验证项的实现方法
Sep 28 Javascript
JavaScript SHA512加密算法详细代码
Oct 06 Javascript
AngularJS中一般函数参数传递用法分析
Nov 22 Javascript
浅谈JS验证表单文本域输入空格的问题
Feb 14 Javascript
vue做网页开场视频的实例代码
Oct 20 Javascript
JS实现访问DOM对象指定节点的方法示例
Apr 04 Javascript
Express本地测试HTTPS的示例代码
Jun 06 Javascript
Angular6封装http请求的步骤详解
Aug 13 Javascript
jquery获取file表单选择文件的路径、名字、大小、类型
Jan 18 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
使用PHPMailer实现邮件发送代码分享
2014/10/23 PHP
php实现使用正则将文本中的网址转换成链接标签
2014/12/03 PHP
PHP递归遍历文件夹去除注释并压缩php源代码的方法示例
2018/05/23 PHP
Aster vs KG BO3 第三场2.18
2021/03/10 DOTA
IE innerHTML,outerHTML所引起的问题
2009/06/04 Javascript
jQuery学习2 选择器的使用说明
2010/02/07 Javascript
Jquery+asp.net后台数据传到前台js进行解析的方法
2014/05/11 Javascript
JQuery自适应窗口大小导航菜单附源码下载
2015/09/01 Javascript
JavaScript多图片上传案例
2015/09/28 Javascript
jQuery操作基本控件方法实例分析
2015/12/31 Javascript
node.js学习之base64编码解码
2016/10/21 Javascript
JS仿京东移动端手指拨动切换轮播图效果
2020/04/10 Javascript
javascript replace()第二个参数为函数时的参数用法
2016/12/26 Javascript
微信小程序实现swiper切换卡内嵌滚动条不显示的方法示例
2018/12/20 Javascript
原生JS实现的自动轮播图功能详解
2018/12/28 Javascript
使用Typescript和ES模块发布Node模块的方法
2020/05/25 Javascript
vue-calendar-component 封装多日期选择组件的实例代码
2020/12/04 Vue.js
python多线程http下载实现示例
2013/12/30 Python
Python中使用item()方法遍历字典的例子
2014/08/26 Python
python正则表达式的使用
2017/06/12 Python
Pandas 对Dataframe结构排序的实现方法
2018/04/10 Python
快速排序的四种python实现(推荐)
2019/04/03 Python
pandas DataFrame 行列索引及值的获取的方法
2019/07/02 Python
简单了解python关系(比较)运算符
2019/07/08 Python
keras 读取多标签图像数据方式
2020/06/12 Python
matplotlib绘制多子图共享鼠标光标的方法示例
2021/01/08 Python
python opencv实现图像配准与比较
2021/02/09 Python
美国办公用品购物网站:Quill.com
2016/09/01 全球购物
为娇小女性量身打造:Petite Studio
2018/11/01 全球购物
口腔医学技术应届生求职信
2013/11/09 职场文书
前台领班岗位职责
2013/12/04 职场文书
市场营销管理毕业生自荐信
2014/03/03 职场文书
民政局副局长民主生活会个人整改措施
2014/10/04 职场文书
小学四年级学生评语
2014/12/26 职场文书
开学随笔
2015/08/15 职场文书
解决Golang中ResponseWriter的一个坑
2021/04/27 Golang