2011-06-20 35 views
0

我有一個自定義驗證器,並希望它在服務器端驗證客戶端。 這裏是我的功能:customvalidator客戶端驗證

function checkCampDockTemplate(source, args) 
    { 
     var campDockTemplate = document.getElementById('<%= drpCampDockTemplate.ClientID %>'); 

     if (campDockTemplate.selectedIndex == 0) 
     { 
      args.IsValid = false; 
     } 
     else 
     { 
      args.IsValid = true; 
     } 
    } 



<asp:CustomValidator ID="campaignDocketTemplateCustomValidator" runat="server" ErrorMessage="Please select a Campaign Docket Template" 
      ControlToValidate="drpCampDockTemplate" OnServerValidate="campaignDocketTemplateCustomValidator_ServerValidate" 
      ClientValidationFunction="javascript:checkCampDockTemplate()"></asp:CustomValidator> 

任何人都可以幫助我這一點。 在此先感謝。

回答

2

您的函數格式大部分都是正確的,但您只需要在ClientValidationFunction屬性中按名稱引用客戶端函數,例如,

<asp:CustomValidator ID="campaignDocketTemplateCustomValidator" 
runat="server" 
ErrorMessage="Please select a Campaign Docket Template" 
ControlToValidate="drpCampDockTemplate"  
OnServerValidate="campaignDocketTemplateCustomValidator_ServerValidate" 
ClientValidationFunction="checkCampDockTemplate"/> 

如果你也想徹底刪除服務器端驗證,您可以刪除從的CustomValidator的OnServerValidate屬性。

一般來說,在服務器和客戶端驗證輸入通常是明智的選擇,以防人們關閉javascript!