2016-04-05 22 views
0

im驗證一個表單驗證io,如果在通過ajax提交之前克隆整個表單,如果我在後面出現錯誤,一個錯誤信息與一個按鈕,如果點擊再次加載表單,但驗證器不工作一次加載。如何做這個驗證io會一直在尋找驗證表單

這裏是我的代碼的一部分,如果有人可以幫助我:

 $.on("success.form.fv", function(e){ 
       e.preventDefault(); 
       var $form= $(e.target); 
       var modal= $form.children(".modal-body"); 
       var datos= $form.serialize(); 
       var modalClonado= modal.children(".row").clone(); 


       $.ajax({ 
        success: function(data) { 
         if ("user" in data) { 
          modal.html(error+data.user+cerrarError); 
         } 
        } 
       }); 
       $form.on("click", "button", function(){ 
        modal.html(modalClonado); 
        $form.find("#submit") 
          .removeClass("disabled") 
          .prop("disabled", false); 
       }); 
      }); 

回答

0

如果你是從DOM刪除您原來的形式,然後用你不會有一個驗證器連接一個新的替換它到它。您將不得不向表單添加另一個驗證對象,以便在您嘗試提交新表單時驗證表單。

爲什麼你需要完全替換你的原始表單,如果它沒有通過驗證?反而允許用戶編輯原件上的任何無效字段並允許它們重新提交表單?

編輯:

一旦你從你的驗證你的結果,你可以使用e.preventDefault()停止提交表單時,驗證未通過,並追加您的錯誤信息在必要。這將使您的表單保持原樣(不會導航離開頁面或需要刷新頁面),用戶可以返回表單來編輯任何無效的字段,然後嘗試重新提交表單,在該表單中進行相同的驗證過程再次發生。如果表單確實成功驗證,您可以在表單上使用.submit()提交表單。 $('#formToSubmit').submit()。這樣您只需將驗證器對象添加到原始表單一次,然後用戶可以不斷嘗試提交表單直到成功。

+0

這就是即時通訊試圖做的,你可能會這樣做? –

+0

增加了一個編輯到我的答案。希望能幫助到你。 – scoots

+0

我使用的formvalidation插件已經有一個提交事件(即上面的代碼),clone()和html(),並且已經在submitiing之前插入了表單,我的問題是一旦它完成,它的no loger驗證表格 –