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>

當然這種方式只能做到提交 並且按鈕不可用 但是無法防止比如用戶修改提交頁面 或者用戶刷新 或者后退等重復操作

只能做到減少服務器接受數據並檢查的頻率 但是這樣依舊有利於減少服務器的工作量

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM