【问题标题】:RegularExpressionValidator is not working正则表达式验证器不起作用
【发布时间】:2013-08-07 18:00:14
【问题描述】:

我在使用 asp.net 时完全是新手,我有这个正则表达式验证器,它之前工作得很好,但是在我对我的文本框进行了大量编辑之后,它就不再工作了。

在编辑之前,当我尝试提交表单时,如果我的文本框为空或 value = "" 它将显示错误消息并NOT重定向到另一个页面。

在编辑后,当我尝试提交表单时,无论文本框是否为空,它都会重定向到另一个页面。 不阻止页面重定向或显示验证器

编辑前。

<asp:TextBox ID="txttstImmLen" CssClass="forImmLenTb" runat="server" Width="118" Text="Enter Value Here" OnClick="this.value=''" onblur="tryPlaceholder(this,'Enter Value Here')" ></asp:TextBox>
<asp:RegularExpressionValidator ID="vldtstImmLen" ControlToValidate="txttstImmLen" Display="Dynamic" ErrorMessage="Immersion Length" Text="*" ValidationExpression="(0*[1-9]\d*)" Runat="server"/>

修改后

<asp:TextBox ID="txttstImmLen" CssClass="forImmLenTb" runat="server" Width="118" onblur="tryPlaceholder(this);"></asp:TextBox>&nbsp;
<asp:RegularExpressionValidator ID="vldtstImmLen" ControlToValidate="txttstImmLen" Display="Dynamic" ErrorMessage="Immersion Length" Text="*" ValidationExpression="(0*[1-9]\d*)" runat="server"/>&nbsp;</td>

请帮忙!

【问题讨论】:

    标签: asp.net regex validation


    【解决方案1】:

    RegularExpressionValidators 不检查空值。您还需要使用RequiredFieldValidator

    根据@KarlAnderson 的评论澄清:您在编辑之前有占位符文本导致RegularExpressionValidator 检查值。

    【讨论】:

    • 但是你怎么解释它显示在之前的编辑代码中?
    • 它在编辑之前起作用的原因是因为您的初始Text 值为Enter Value Here,因此正则表达式需要处理并尝试匹配。
    • 哦,我明白了...我想我别无选择,只能添加一个RequiredFieldValidator。谢谢!!!
    【解决方案2】:

    您可能需要设置 ValidationGroup 属性。如果导致验证的控件已设置。

    那是我的问题。

    【讨论】:

    • OP 不使用验证组。
    猜你喜欢
    • 2015-05-29
    • 2021-06-18
    • 2018-11-29
    • 2014-04-21
    • 1970-01-01
    • 2016-08-01
    • 2011-03-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多