2011-01-05 74 views
1

我有一个自定义验证器,其中验证控件的脚本是客户端JavaScript。ASP.NET自定义验证器 - Page.Validate(“groupName”)不会触发?

在我的网站后面的VB代码我打电话Page.Validate("groupName"),但我的验证脚本根本没有被解雇。我在JavaScript中放置了一个断点,但它甚至没有触及我的验证脚本。而当我在非自定义验证器上使用相同的函数时,它可以工作。

我想通过Page.Validate("groupName")在我的VB后面的代码中调用我的客户端验证脚本是不可能的。我绝对需要服务器端验证功能吗?

下面是一些代码:

<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 2011-01-05 20:20:06

+0

我并不担心用户绕过,因为这是一个简单的Web应用程序,只会在我工作的公司中大约3-4人使用。它不会向公众开放,人们将会尝试这种肮脏的东西。 – Johnrad 2011-01-05 20:29:44

回答

3

Page.Validate用于验证在服务器一侧。如果您想触发客户端验证,请从您的JavaScript代码中调用功能Page_ClientValidate("group1")