關於ajax提交表單,重複提交解決方法

romance_jay發表於2016-12-02

今天做了一個扣除使用者金額,解決重複提交問題,這裡用了layer,您可以註釋。

/*提交表單*/
 var lock = true; // 鎖住表單    1.這裡定義一把鎖
 function submit(){

  if(!lock){    // 2.判斷該鎖是否開啟,如果是關閉的,則直接返回
   return false;
  }
  lock = false  //3.進來後,立馬把鎖鎖住
  var index = layer.load(1, {
    shade: [0.1,'#fff'] //0.1透明度的白色背景
  });
  $.ajax({
   url:'/invest/investOrder.shtml',
   type:'post',
   data:$("#investForm").serialize(),
   success:function(data){
    if(data == 'SUCCESS'){  // 4.業務邏輯執行成功回撥
     layer.msg("投標成功!正在跳轉...",{shift:1},function(){
      window.location.href = "/invest/loandetails.shtml?loanId="+$("#loanSignId").val();  // 5.這一步已經不需要管鎖了,直接跳轉到新頁面了,看你的需求
     }); 
    }else{
     layer.msg("投標失敗!"); 
     lock = true;// 4.1  業務邏輯執行失敗了,開啟鎖
    }
    layer.close(index);
    
   },
   error:function(data){
    layer.msg("網路出錯,請稍後再試!");
    layer.closeAll("loading");
    lock = true;;// 4.2  業務邏輯執行失敗了,開啟鎖
   }
  });
 
 }



以上就是一個簡單的阻止重複提交,另外有禁用按鈕,使用定時器的效果,也是可以實現的。具體就不做列子了。有興趣的朋友可以去試試。

相關文章