2013-11-01 54 views
0

我正在使用jQuery驗證:http://bassistance.de/jquery-plugins/jquery-plugin-validation/並且無法將驗證消息重置爲默認狀態。即;不突出顯示。我試圖實現的是,如果我關閉了對話窗口,那麼驗證器會將自己重置爲一個狀態,就好像該窗口首次打開一樣。然而,當我通過單擊X重新打開關閉對話框時,錯誤消息仍然存在。我不知道resetForm()應該去哪裏,如果我必須準備一個對話框(「關閉」)過程。當我關閉對話框時jQuery驗證resetForm錯誤

我只發佈了我認爲與問題相關的代碼。

如果有人能指出我的錯誤,我將不勝感激。由於

else if (this.name === 'Administration') { 
    $("#formShow").show(); 
    // admin clicked 

    //$("#confirm_department").show().html("You have selected administration"); 
    $("#formImage .col_1 li").hide(); 
    var $dialog = $('#frmreport'); 
    $dialog.dialog({ 
     autoOpen: true, 
     modal: true, 
     title: 'Submit a ' + name + ' report', 
     width: 500, 
     height: 400, 
     draggable: false, 
     resizable: true, 
     // buttons: { 
     // Close: function() { 
     // $(this).dialog("close"); 
     // $("#frmreport").get(0).reset(); 
     // } 
     // } 
    }); 
    //$('#frmreport').dialog('close'); 
    //$("#frmreport").get(0).reset(); 

    //console.log(name); 
    $('input[name=dept]').val(name); 
    $(".subtitle").text("Submit " + name + " feedback report"); 
    //code 
} 

編輯:更新後的代碼,按您的評論

else if(this.name === 'Administration') { 

      $("#formShow").show(); 

      // admin clicked 


      //$("#confirm_department").show().html("You have selected administration"); 
      $("#formImage .col_1 li").hide(); 
      var $dialog = $('#frmreport'); 
       $dialog.dialog({ 
       autoOpen: true, 
       modal: true, 
       title: 'Submit a ' +name+ ' report', 
       width: 500, 
       height: 400, 
       draggable: false, 
       resizable: true, 
       Close: function(event, ui) { 
       $("#frmreport").validate().resetForm(); 
       } 
       // buttons: { 
       // Close: function() { 
       // $(this).dialog("close"); 
     // $("#frmreport").get(0).reset(); 
       // } 
       // } 
       }); 
     //$('#frmreport').dialog('close'); 
       //$("#frmreport").get(0).reset(); 

       //console.log(name); 

      $('input[name=dept]').val(name); 
      $(".subtitle").text("Submit " + name + " feedback report"); 

      //code 
     } 

回答

1

試試這個在您的Close功能:

$dialog.dialog({ 
    close: function(event, ui) { 
       $("#frmreport").validate().resetForm(); 
      } 
}); 
+0

問題是,我不想使用按鈕來關閉窗體,因爲我發送數據submitHandler處理serailize等。是否有可能沒有按鈕關閉功能。謝謝 – user1532468

+0

我的意思是關閉事件功能。檢查我的編輯。 – WannaCSharp

+0

仍然是同樣的問題。謝謝 – user1532468

1

這是可行的解決方案!

var $form = $('#userForm'); 
     $form.find("[data-valmsg-replace]") 
       .removeClass("field-validation-error") 
       .addClass("field-validation-valid") 
       .empty();