【问题标题】:ASP.NET Custom Validators - Page.Validate("groupName") not firing?ASP.NET 自定义验证器 - Page.Validate("groupName") 没有触发?
【发布时间】:2011-06-04 06:23:19
【问题描述】:

我有一个自定义验证器,其中验证控件的脚本是客户端 JavaScript。

在我调用Page.Validate("groupName") 的网站背后的VB 代码中,但我的验证脚本根本没有被触发。我在我的 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 函数。

【问题讨论】:

  • 是的,您绝对需要服务器端验证,因为用户可以绕过您的 javascript 检查并将他们想要的任何内容提交到您的表单。唯一可以确定的方法是在服务器端进行检查。
  • 我不担心用户绕过,因为这是一个简单的 Web 应用程序,在我工作的公司中只有大约 3-4 人使用。它不会向公众开放,在那里人们会尝试这种肮脏的东西。

标签: asp.net vb.net validation customvalidator


【解决方案1】:

Page.Validate 用于在 Server 端进行验证。如果您想触发客户端验证,请从您的 JavaScript 代码中调用函数 Page_ClientValidate("group1")

【讨论】:

    猜你喜欢
    • 2021-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-06
    • 2011-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多