zoukankan      html  css  js  c++  java
  • 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>

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

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

      

    恐惧源于无知,代码改变世界
  • 相关阅读:
    每天干攻防,都不会写驱动了
    SSD 坏了
    据说英雄联盟要出新皮肤了
    随便写点什么,证明我还活着,VS2010出现的问题
    ida 符号路径设置
    搭建一个自己的SVN服务器
    nginx+keepalived互为主主高可用配置
    nginx+keepalived主从高可用配置
    Lnamp的高级网站架构+动静分离+反向代理
    Nginx+PHP(FastCGI)高性能服务器加载redis+memcache模块
  • 原文地址:https://www.cnblogs.com/ad-zhou/p/8975789.html
Copyright © 2011-2022 走看看