asp.net - 必填字段验证器不起作用

标签 asp.net validation requiredfieldvalidator

我使用了一个必填字段验证器,后跟一个正则表达式验证器,但必填字段验证器不起作用.....

<asp:TextBox ID="txtSummary" runat="server" TextMode="MultiLine" Width="700px"
    CssClass="txtStyle" Font-Names="Arial" MaxLength="1000" 
    ValidationGroup="Valtxt" TabIndex="2" Rows="4">
</asp:TextBox>

<asp:RegularExpressionValidator ID="regValSummary" runat="server"
    ControlToValidate="txtSummary" Display="Dynamic"
    ValidationExpression="[^&lt;&gt;&amp;#!]*" ValidationGroup="Valtxt">
        Invalid characters(&lt;&gt;&amp;#!) are not allowed
</asp:RegularExpressionValidator>

<asp:RequiredFieldValidator ID="reqvalSummary" runat="server"
    ControlToValidate="txtSummary" ErrorMessage="Summary is required"
    ValidationGroup="Valtxt" Display="Dynamic">
</asp:RequiredFieldValidator>

谁能看出问题???

最佳答案

RequiredFieldValidator由客户端触发onchange事件。听起来您希望它由 onblur 触发事件,这样离开文本框的选项卡会触发验证。

在开始之前,我怀疑这就是您所看到的,要验证它是否确实有效,您需要触发 onchange .为此,请在文本框中输入一些文本,使用制表符离开,再次使用制表符,清除文本框,然后再次使用制表符。您现在应该会看到RequiredFieldValidator 的错误消息,因为它的内容已更改

返回 onblur问题。要完成该行为,您可以添加 onblur属性在你的代码隐藏,并让它调用 ValidatorValidate(...) JavaScript方法如下:

void Page_Load(object sender, EventArgs e)
{
    txtSummary.Attributes.Add("onblur", "ValidatorValidate(" + reqvalSummary.ClientID + ")");
}

或者,您可以在标记中完成同样的事情。首先,添加这个脚本 block :

<script type="text/javascript">
    function rfvBlur() {
        var rfv = document.getElementById("<%= reqvalSummary.ClientID %>");
        ValidatorValidate(rfv);
    }    
</script>

其次,更新<asp:TextBox.../>通过添加 onblur="rfvBlur()" 进行标记所以它现在看起来像这样:

<asp:TextBox ID="txtSummary" runat="server" TextMode="MultiLine" Width="700px" CausesValidation="true"
            CssClass="txtStyle" Font-Names="Arial" MaxLength="1000" ValidationGroup="Valtxt"
            TabIndex="2" Rows="4" onblur="rfvBlur()" />

另一个选项是通过将以下属性添加到您的 <asp:TextBox.../> 来验证整个 ValidationGroup标记(不需要额外的脚本 block ):

onblur="Page_ClientValidate('Valtxt')"

关于asp.net - 必填字段验证器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4069001/

相关文章:

javascript - 如何使用 javascript 在用户控制页面中获取父页面名称

c# - 如何验证在 asp.net 中动态添加的控件

asp.net - 带有 ValidationGroup 的 RequiredFieldValidator 不验证

javax.validation 如何针对不同的语言环境?

spring - Spring 中子类化 LocalValidatorFactoryBean 的替代方案

jquery - Ajax 在 MVC AsP.net 中发布表单(验证)?

c# - ASP.NET:避免在导航按钮回发时使用 RequiredFieldValidator

javascript - 排序和过滤器不起作用 - Ngtable

asp.net - 如何创建用于创建屏幕抓取的小书签?

c# - 使用带有 <%@ Register %> 的空 TagPrefix