【问题标题】:RequiredFieldValidator and preventing CausesValidationRequiredFieldValidator 和阻止 CausesValidation
【发布时间】:2012-07-27 00:56:21
【问题描述】:

我的联系表单上有RequiredFieldValidator

当人们点击“提交”时,它会按预期工作,但如果他们点击“取消”或我表单上的多个菜单中的任何一个,RequiredFieldValidator 会取消该操作。

我已经搜索并发现我需要使用CausesValidation = False(使用this 帖子)在我的表单上设置其他控件,但是我必须为每个控制我的页面?

更糟糕的是,我的表单上的菜单包含在 Master.Page 中,它们大多是 <DIV> 样式的 CSS 按钮,但单击任何按钮都会导致 RequiredFieldValidator 触发并导致表单失败.

默认不应该是False,我必须打开哪个控件设置验证?

【问题讨论】:

    标签: asp.net html requiredfieldvalidator


    【解决方案1】:

    您可以设置验证组

                 <asp:TextBox ID="tb1" runat="server" ValidationGroup="ValidateMe" />
                 <asp:TextBox ID="tb2" runat="server" />
                 <asp:RequiredFieldValidator" ID="rfv1" runat="server" ControlToValidate="tb1" ValidationGroup="ValidateMe" />
                   ...
                 <asp:Button ID="btnSubmit" runat="server" ValidationGroup="ValidateMe" />
    

    来自here

    编辑,对不起,我没有把它正确地放入代码中并且它没有显示:

    或者,如果它们只是取消之类的,您可以随时在客户端使用和处理它们

             <input type="button" > 
    

    【讨论】:

    • ValidationGroup 工作。不过,我不明白这是如何消除超链接行为的。
    • 因为超链接不“知道”验证组。默认情况下,它们仅验证未命名(空字符串“”)组。
    • 谢谢 - 我有一个类似的问题,带有导航 jqueryui 选项卡小部件中的选项卡的超链接,而 ValidationGroup 解决了这个问题
    【解决方案2】:

    你只需要设置:

      CausesValidation = False
    

    到执行操作的按钮

    作为替代方案,您可以向控件和按钮添加ValidationGroup 属性来控制哪些按钮引发验证。只有与指定的ValidationGroup 匹配的控件才会被验证

    【讨论】:

    • 我只有 1 个取消按钮。直到我无法使用页面上的任何超链接离开联系表单时,我才注意到这种奇怪的行为。如果我在取消按钮上设置False,这是否也适用于所有链接?
    • mm 不,将CausesValidation=false 设置为每个按钮/链接或将ValidaitonGroup 设置为您的验证器和控件。另一种方法是,您可以遍历表单上的所有控件并设置CausesValidation=false,然后将您想要触发验证的按钮覆盖为true
    • 好的,又一个 +1。这就是我担心我必须要做的事情(遍历表单上的所有控件并设置CausesValidation=False - 愚蠢的 ASP.NET)。幸运的是,我能够使用上面 Scott Selby 提出的ValidationGroup 概念,它能够以更少的努力解决我的问题。谢谢!
    猜你喜欢
    • 2010-10-13
    • 2012-01-04
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    • 2013-09-26
    • 1970-01-01
    • 2013-06-01
    相关资源
    最近更新 更多