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 相关文章推荐
jQuery EasyUI API 中文文档 - EasyLoader 加载器
Sep 29 Javascript
把jquery 的dialog和ztree结合实现步骤
Aug 02 Javascript
jQuery对象的length属性用法实例
Dec 27 Javascript
JavaScript实现动态添加,删除行的方法实例详解
Jul 02 Javascript
js实现文字超出部分用省略号代替实例代码
Sep 01 Javascript
angular.JS实现网页禁用调试、复制和剪切
Mar 31 Javascript
jQuery 添加样式属性的优先级别方法(推荐)
Jun 08 jQuery
js处理包含中文的字符串实例
Oct 11 Javascript
vue+swiper实现侧滑菜单效果
Dec 28 Javascript
js使用文件流下载csv文件的实现方法
Jul 15 Javascript
Websocket 向指定用户发消息的方法
Jan 09 Javascript
Vue2.0 ES6语法降级ES5的操作
Oct 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
thinkphp连贯操作实例分析
2014/11/22 PHP
PHP常用技巧汇总
2016/03/04 PHP
phalcon model在插入或更新时会自动验证非空字段的解决办法
2016/12/29 PHP
PHP实现的MD5结合RSA签名算法实例
2017/10/07 PHP
统计jQuery中各字符串出现次数的工具
2012/05/03 Javascript
jQuery extend 的简单实例
2013/09/18 Javascript
Jquery遍历Json数据的方法
2015/04/20 Javascript
基于JavaScript实现Json数据根据某个字段进行排序
2015/11/24 Javascript
BootStrap表单控件之复选框checkbox和单选择按钮radio
2017/05/23 Javascript
jQuery简单实现向列表动态添加新元素的方法示例
2017/12/25 jQuery
基于JavaScript中标识符的命名规则介绍
2018/01/06 Javascript
解决vue接口数据赋值给data没有反应的问题
2018/08/27 Javascript
微信小程序sessionid不一致问题解决
2019/08/30 Javascript
Vuex中实现数据状态查询与更改
2019/11/08 Javascript
element中的$confirm的使用
2020/04/26 Javascript
仅利用30行Python代码来展示X算法
2015/04/01 Python
对python列表里的字典元素去重方法详解
2019/01/21 Python
在django中自定义字段Field详解
2019/12/03 Python
Python装饰器原理与基本用法分析
2020/01/07 Python
给Python学习者的文件读写指南(含基础与进阶)
2020/01/29 Python
在Python中通过threshold创建mask方式
2020/02/19 Python
CSS3媒体查询Media Queries基础学习教程
2016/02/29 HTML / CSS
AmazeUI 折叠面板的实现代码
2020/08/17 HTML / CSS
Canvas实现放大镜效果完整案例分析(附代码)
2020/11/26 HTML / CSS
Fossil德国官网:化石手表、手袋、珠宝及配件
2019/12/07 全球购物
如何保障Web服务器安全
2014/05/05 面试题
销售业务员岗位职责
2014/01/29 职场文书
七年级政治教学反思
2014/02/03 职场文书
《金钱的魔力》教学反思
2014/02/24 职场文书
2014年药剂科工作总结
2014/11/26 职场文书
爱心助学感谢信
2015/01/21 职场文书
自荐信格式范文
2015/03/04 职场文书
党员干部廉洁自律承诺书
2015/04/28 职场文书
借条如何写
2015/05/26 职场文书
2015暑期工社会实践报告
2015/07/13 职场文书
python对文档中元素删除,替换操作
2022/04/02 Python