2013-03-29 35 views
2

如何使用JQuery訪問Asp.NET驗證器,如必需字段,正則表達式等等。
我們如何控制它們的顯示並使用Jquery對其進行自定義?使用Jquery管理Asp.Net驗證器

+0

您的問題相當廣泛。你能把它減少到你可能遇到的具體問題嗎? –

+0

贊同例如在JQuery的幫助下,我們可以使用Asp.Net控件,例如我們可以移除,插入,刪除,清除等。但使用Asp.Net驗證器很難使用Jquery訪問它們,我無法自定義他們使用Jquery? –

回答

1

簡而言之,是的,你可以從Javascript訪問驗證器(你實際上並不需要jQuery來做這件事),當然,如果啓用了客戶端驗證(即在頁面中至少有一個啓用且可見的驗證器其EnableClientScript特性設置爲true)。

驗證器對象在全局的Page_Validators數組中可用。您可以使用ValidatorEnable()禁用或啓用單個驗證器,並使用ValidatorValidate()強制進行驗證。 This MSDN article提供了關於客戶端驗證API的更多信息。

通過重新驗證驗證器的驗證方法可以實現任意定製。 This old answer of mine在純Javascript中記錄了這個過程,用jQuery它給出了類似於:

if (window.Page_Validators) { 
    $.each(window.Page_Validators, function(index, validator) { 
     validator.__old_evaluationfunction = validator.evaluationfunction; 
     validator.evaluationfunction = function(value) { 
      var element = validator.controltovalidate; 
      if (!validator.__old_evaluationfunction(value)) { 
       // Validation failed - turn 'element' red, scream at the user, etc. 
       return false; 
      } else { 
       // Validation succeeded - restore 'element' to its normal state. 
       return true; 
      } 
     }; 
    }); 
} 
+0

非常感謝您的精彩回答:) –