2011-06-20 22 views
0

私はカスタムバリデーターを持っており、サーバー側ではなくクライアント側を検証したいと考えています。ここ は私の関数である。カスタムバリデーターのクライアント側の検証

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がオフになっている場合に備えて、通常はサーバー側とクライアント側の入力を検証するのが賢明です。

関連する問題