2011-01-05 9 views
1

私はコントロールの検証スクリプトがクライアント側のJavaScriptであるカスタムバリデータを持っています。ASP.NETカスタムバリデータ - Page.Validate( "groupName")が起動しない?

ウェブサイトのVBコードの後ろに私はPage.Validate("groupName")と呼んでいますが、私の検証スクリプトは一切起動されていません。私はJavaScriptにブレークポイントを設定しましたが、私の検証スクリプトには触れていません。私が非カスタムバリデーターで同じ関数を使用するとき、それは機能しますが。

VBビハインドコードでクライアント側の検証スクリプトをPage.Validate("groupName")で呼び出すことは不可能だと考えています。私は絶対にサーバー側の検証機能が必要ですか?コードの後ろ

<asp:CustomValidator ID="ValidateTxt" runat="server" 
    ClientValidationFunction="validateTxt" 
    ControlToValidate="txtBox" 
    Display="Dynamic" 
    ValidationGroup="group1"> 
</asp:CustomValidator> 

<script type="text/javascript" language="javascript" > 
    function validateFinHeight(source, arguments) 
    { 
     if(arguments.Value % 2 == 0){ 
      arguments.IsValid = true; 
     }    
    } 
</script> 

VB:

Protected Sub cbo(ByVal sender As Object, ByVal e As System.EventArgs) Handles cbo.SelectedIndexChanged 
    Page.Validate("group1") 
End Sub 

Page.Validate("group1")は私のJavaScript関数を呼び出していません

は、ここでは、コードのビットです。

+0

はい、ユーザーはJavaScriptチェックをバイパスしてフォームに必要なものを送信できるため、サーバー側の検証が絶対必要です。確かめる唯一の方法は、サーバー側のチェックです。 – Greg

+0

私が働いている会社で約3-4人しか使用しないシンプルなWebアプリケーションであるため、バイパスしているユーザーは心配していません。それは人々がそれのような汚いものをしようとしている一般に公開されるつもりはありません。 – Johnrad

答えて

3

Page.Validateは、のサーバーで検証するために使用されます。クライアント側の検証をトリガーする場合は、JavaScriptコードから関数Page_ClientValidate("group1")を呼び出します。

関連する問題