【问题标题】:Custom validator stop working after setting 'ControlToValidate' property设置“ControlToValidate”属性后自定义验证器停止工作
【发布时间】:2012-11-13 13:39:56
【问题描述】:

我正在使用 ASP.NET Pages 和 CustomValidator 控件来验证控件集。另外我正在使用 ClientValidation 属性和我的自定义 javascript 函数。我的主要问题是:当我设置“ControlToValidate”属性时 - 验证函数停止调用。我已经检查了两次,为验证器和控件设置了 ID 以进行验证,但仍然没有结果。

有人知道如何解决我的问题吗?

附:我需要设置 ControlToValidate 属性的主要原因是我想在失去控制焦点后立即触发验证

更新: 这是验证器:

        <asp:CustomValidator ID="cvEmail1" runat="server" ClientValidationFunction="ValidateEmail" 
            Display="Dynamic" EnableClientScript="True" ForeColor="Red" ErrorMessage="This field is required"/>

这是验证功能:

<script type="text/javascript">
    function ValidateEmail(sender, args) {
        var isValid = myCheck();
        args.IsValid = isValid;
    }
</script>

【问题讨论】:

  • 请发布您的代码示例。
  • 控件是否包含文本或为空。如果是后者,您应该将ValidateEmptyText 设置为true。 ListControls(SelectedIndex == -1) 也是如此。 PS:您也可以使用Page_ClientValidate("validationGroup") 强制客户端验证onblur
  • 控件不包含空文本。其实可以,但这不是我的情况
  • Tim Schmelter - 请向我道歉,看来 ValidateEmptyText=true 真的很有帮助。但是天哪 - 当 ControlToValidate 不为空时它就不起作用了!

标签: asp.net customvalidator


【解决方案1】:

没有 ControlToValidate 属性集的 CustomValidator 会在每次回发时进行验证。当您建立另一个控件的 ID 时,它只会在该控件具有要验证的值时进行验证;它不会验证空文本。将 ValidateEmptyText 设置为 true 以启用它。

另外,您可能想发布您的设置,以便我们进一步提供帮助。

【讨论】:

  • 非常感谢您的评论,它真的对我有用。只有一个人认为我没有得到 - 我正在尝试非空 ControlToValidate 并且它不起作用,除非我将 ValidateEmptyText 设置为 true
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-20
  • 1970-01-01
  • 1970-01-01
  • 2011-09-04
  • 1970-01-01
  • 2021-04-09
  • 2014-04-05
相关资源
最近更新 更多