2010-06-09 45 views
1

我在ASP.NET MVC 2框架中進行客戶端驗證時遇到了一些麻煩,希望有人能幫助我。如何重置ASP.NET MVC客戶端驗證模式?

在幾種情況下,我發現它能夠重置表單的內容或只是一個輸入元素,並且我需要任何驗證錯誤消失。這本身並不是很難,而且這裏提供的建議工作得很好: How do I clear MVC client side validation errors when a cancel button is clicked when a user has invalidated a form?

問題是,當觸發時,客戶端驗證進入激進模式,對每個按鍵執行驗證,當輸入丟失焦點。是否有重置此狀態的好方法?

回答

2

事實證明,我的一些問題可以通過設置重置按鈕來解決驗證框架所要求的reset來解決。當失敗時提交(由於無效的字段)這不工作,在這種情況下,我最終使用下面的函數(selector是一個jQuery選擇符):

resetFieldValidation: function (selector) { 
    var fields = $(selector); 
    fields.removeClass('input-validation-error').addClass('input-validation-valid'); 
    fields.siblings('.field-validation-error').text('').removeClass('field-validation-error').addClass('field-validation-valid'); 
    fields.each(function() { 
     $(this)[0]['__MVC_HasTextChanged'] = false; 
     $(this)[0]['__MVC_HasValidationFired'] = false; 
    }); 
} 

功能集的最後一部分值向驗證框架指示這些字段沒有改變並且以前沒有觸發驗證錯誤。

+0

你讓我的一天莫滕;)謝謝+1你(y) – 2015-04-20 13:16:46