【当服务器超载时,会出现提交卡顿的现象,但是用户在操作时,会不停重复点击提交,会造成服务器压力更大。所以我们需要进行限制】

[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禁止用户多次提交的两种方法的相关资料,希望对大家有所帮助!

广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!

RTX 5090要首发 性能要翻倍!三星展示GDDR7显存

三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。

首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。

据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。