• JS中如何防止表单重复提交问题


    在登录页面html中写如下代码

    <script type="text/javascript">
            var issubmit=false;
            function dosubmit(){
                if(issubmit==false){
                    issubmit=true;
                    return true;
                }else{
                    return false;
                }
                
            }
        </script>
      </head>
      
      <body>
          <form action="/Day07/FormSubmit" method="get" onsubmit="return dosubmit()">
              用户名:<input type="text" name="usrname">
              <br><input type="submit" value="提交">
          </form>
      </body>

    重点是这个JS语句 定义了一个方法 共用一个Flag标记 进行验证 如果已经提交过,就返回一个false给onsubmit这个数据

    如果没有提交过 将标记设置为true 并且返回一个ture 给onsubmit 让其提交一次数据 这是js防止表单重复提交 应对的是传输数据

    时网络延时 而用户多次提交数据 造成的问题

    当然还有一种思路 可以设置提交按钮在提交一次之后不可用 也就是变为灰色 那么该怎么做勒

    <script type="text/javascript">
            function dosubmit(){
                var input=document.getElementById("submit");
                input.disabled='diabled';
                return ture;
            }
    </script>
    
    <form action="/Day07/FormSubmit" method="get" onsubmit="dosubmit()" ><!-- onsubmit="return dosubmit()" -->
              用户名:<input type="text" name="usrname">
              <br><input id="submit" type="submit" value="提交">
    </form>

    当然这种方式只能做到提交 并且按钮不可用 但是无法防止比如用户修改提交页面 或者用户刷新 或者后退等重复操作

    只能做到减少服务器接受数据并检查的频率 但是这样依旧有利于减少服务器的工作量

      

    恐惧源于无知,代码改变世界
  • 相关阅读:
    最长双回文串
    BUUOJ misc 二维码
    HDU 1284 钱币兑换问题 (动态规划 背包方案数)
    HDU 1260 Tickets (动态规划)
    HDU 1231 最大连续子序列 (动态规划)
    HDU 1203 I NEED A OFFER! (动态规划、01背包、概率)
    BUUOJ reverse SimpleRev (爆破)
    BUUOJ reverse 不一样的flag
    HDU 1176 免费馅饼 (动态规划、另类数塔)
    HDU 1171 Big Event in HDU (动态规划、01背包)
  • 原文地址:https://www.cnblogs.com/ad-zhou/p/8975789.html
Copyright © 2020-2023  润新知