如何在多次點擊該按鈕時不讓它重復提交,也就是在表單插入到數據庫,正在緩沖中,就多次點擊,同一現了多次提交,
不能用struts的saveToken,也不能讓按鈕提交後設置成disable,該如何做???

解决方案 »

  1.   

    where 省份 are you from ?
    taiwan or xianggang?
      

  2.   

    在提交页面生成一个随机数,session同时保持这个随机数
    如果提交的时候 判断提交页面的数据数和session的随机数是否相等
    如果不相等,就不能提交。这是仿照session的 token
      

  3.   

    这是仿照struts的 token 上面写错了
      

  4.   

    session中处理啊 判断session中是否有你要提交的数据
      

  5.   

    如果用js,要不就只能提交一次,要不是就不管用,我這不是單擊按鈕的重復提交,而是在很短的時間內多次點擊的重復提交,也就是第一次點擊後,程序還沒運行完就連接多次點擊
    至於做中轉頁面那就算了吧,我這裡頁面顯示數據太復雜
    還有,用session怎麼做,在頁面搞一個隨機數??如何做???
      

  6.   

    很多都是扯淡,用js的时候可以这样:
    Struts2本身提供了重复提交的检查机制,但是我要的不是弹出一个出错页面,而是当作什么也没发生,只执行一次提交1.设置一个变量,设置一个变量,只允许提交一次。<script type="text/javascript">
    var checkSubmitFlg=false;
    function checkSubmit() {
      if (checkSubmitFlg == true) {
        return false;
      }
      checkSubmitFlg = true;
      return true;
    }
    </script><form onsubmit="return checkSubmit();" method="post">方法1在IE6和FIREFOX上实验下来都有效2.禁用按钮的方式
    由于我们的那个服务器实在太慢,让按钮变灰,给用户的体验更好一些<script type="text/javascript">
    function disableSubmit(form) {
      var elements = form.elements;
      for (var i = 0; i < elements.length; i++) {
        if (elements[i].type == 'submit') {
           elements[i].disabled = true;
        }
      }
    }
    </script><form name="form1" onsubmit="setTimeout('disableSubmit(form1)',100) return checkSubmit();" method="post">马上禁用的话会导致按钮单独的action设置失效,所以要加一个延时
    方法2在IE6有效。在FIREFOX无效,原因未知。但反正是第二保险,也没关系。
      

  7.   

    js设置一个变量,点一下设一个值,后面点去判断这个值不就行了么,,没LZ你描述的这么复杂
      

  8.   


    是的,很多都是些没有用,繁琐的做法如果用过jquery 的blockui,就能很好的解决此类问题。