Asp.net

當使用者使表單無效時點擊取消按鈕時,如何清除 MVC 客戶端驗證錯誤?

  • May 9, 2010

我有一個在主視圖中呈現的局部視圖。局部視圖利用System.ComponentModel.DataAnnotationsHtml.EnableClientValidation()

點擊連結,包含部分視圖的 div 將顯示在JQuery.Dialog().

然後我點擊保存按鈕,而不在經過驗證的輸入欄位中輸入任何文本。這會導致客戶端驗證按預期觸發,並在無效欄位旁邊顯示“*required”消息。

點擊取消按鈕時,我想將客戶端 MVC 驗證重置為其預設狀態並刪除所有消息,以備使用者再次打開對話框時使用。有推薦的方法嗎?

這個答案適用於 MVC3。請參閱下面的評論以獲取將其更新到 MVC 4 和 5 的幫助

如果您只想清除驗證消息以便不向使用者顯示它們,您可以使用 javascript 執行此操作,如下所示:

function resetValidation() {
       //Removes validation from input-fields
       $('.input-validation-error').addClass('input-validation-valid');
       $('.input-validation-error').removeClass('input-validation-error');
       //Removes validation message after input-fields
       $('.field-validation-error').addClass('field-validation-valid');
       $('.field-validation-error').removeClass('field-validation-error');
       //Removes validation summary 
       $('.validation-summary-errors').addClass('validation-summary-valid');
       $('.validation-summary-errors').removeClass('validation-summary-errors');

   }

如果您需要重置僅在您的彈出視窗中起作用,您可以這樣做:

function resetValidation() {
       //Removes validation from input-fields
       $('#POPUPID .input-validation-error').addClass('input-validation-valid');
       $('#POPUPID .input-validation-error').removeClass('input-validation-error');
       //Removes validation message after input-fields
       $('#POPUPID .field-validation-error').addClass('field-validation-valid');
       $('#POPUPID .field-validation-error').removeClass('field-validation-error');
       //Removes validation summary 
       $('#POPUPID .validation-summary-errors').addClass('validation-summary-valid');
       $('#POPUPID .validation-summary-errors').removeClass('validation-summary-errors');

   }

我希望這就是你想要的效果。

引用自:https://stackoverflow.com/questions/2798427