2011-07-31 122 views
1

我需要驗證各種ASP.NET控件,而不是在驗證失敗時在旁邊顯示標準文本/星號/圖像,我需要顯示自定義內容(更改輸入文本框的輪廓顏色,顯示工具提示等)。在大多數情況下,我可以使用標準的驗證控件(例如TextField的RequiredFieldValidator),除非驗證失敗時的顯示。使用ASP.NET驗證控件創建自定義響應

我已經開始創建CustomValidators,但我需要多次進行各種驗證(必填字段,正則表達式,範圍)。重新創建這些驗證器的邏輯似乎是一種浪費,因此它可以改變響應輸出。在文檔http://msdn.microsoft.com/en-us/library/3w0bs977.aspx上的MS文檔說,在這種情況下,可以在客戶端和服務器上完成自定義響應:「在客戶端和服務器端,您都可以創建自定義響應,例如控件中的顏色更改或文本的字體更改在標籤上。「它給出了服務器端的一個例子,但沒有給出客戶端的一個方法。處理客戶端自定義響應的最佳方式是什麼?

回答

1

這篇文章可以幫助你:

http://msdn.microsoft.com/en-us/library/aa479045.aspx

尤其是本節(尋找 「客戶端驗證」,然後在那裏, 「特效」):

<asp:Label id=lblZip runat=server 
    Text="Zip Code:"/> 
<asp:TextBox id=txtZip runat=server 
    OnChange="txtZipOnChange();" /></asp:TextBox><br> 
<asp:RegularExpressionValidator id=valZip runat=server 
    ControlToValidate=txtZip 
    ErrorMessage="Invalid Zip Code" 
    ValidationExpression="[0-9]{5}" /><br> 

<script language=javascript> 
function txtZipOnChange() { 
    // Do nothing if client validation is not active 
    if (typeof(Page_Validators) == "undefined") return; 
    // Change the color of the label 
    lblZip.style.color = valZip.isvalid ? "Black" : "Red"; 
} 
</script> 

還有一些接線需要完成,你可以用一些jQuery或類似的東西來整理。

+0

是的,那看起來像我之後。謝謝! –