Asp.net
當使用者使表單無效時點擊取消按鈕時,如何清除 MVC 客戶端驗證錯誤?
我有一個在主視圖中呈現的局部視圖。局部視圖利用
System.ComponentModel.DataAnnotations和Html.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'); }我希望這就是你想要的效果。