RegularExpressionValidator 有效,但 RequiredFieldValidator 无效
Posted
技术标签:
【中文标题】RegularExpressionValidator 有效,但 RequiredFieldValidator 无效【英文标题】:RegularExpressionValidator works but RequiredFieldValidator does not 【发布时间】:2017-01-08 20:10:33 【问题描述】:我正在尝试在 asp.net 网络表单中为我的文本框设置 RegularExpressionValidator 和 RequiredFieldValidator。我的 RegularExpressionValidator 工作并给出错误消息,但是当我单击提交按钮时,我的 RequiredFieldValidator 不显示错误消息。我还尝试将 ValidationGroup 添加到我的文本框和按钮以及 RegularExpressionValidator 和 RequiredFieldValidator,但没有任何改变。你能帮我们解决一下吗? 顺便说一句,我已经添加了
<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
</appSettings>
到我的网络配置。谢谢。
<input type="text" id="user" placeholder="username" runat="server"/>
<asp:RegularExpressionValidator runat="server" ErrorMessage="Username is not suitable" Display="Dynamic"
ValidationExpression="^([a-zA-Z0-9]0,8)$" ID="req1"
ForeColor="Red" ControlToValidate="user" />
<asp:RequiredFieldValidator runat="server" Display="Dynamic" ErrorMessage="Username required" ID="req2"
ForeColor="Red" ControlToValidate="user"/>
<button id="submitbtn" type="button" runat="server">Sign up</button>
【问题讨论】:
尝试使用 html 5 必需属性。 【参考方案1】:哥们,你打错字了,输入必须提交
<button id="submitbtn" type="submit" runat="server">Sign up</button>
Type="submit" 会将页面发送回服务器,而 type 不会将页面发送到服务器。
另一种方法是使用 Page.isValid 属性。
【讨论】:
【参考方案2】:试试这个
Username: <input type="text" id="user" name="usrname" required>
<input type="submit" id="submitbtn" type="button" runat="server"/>
<asp:RegularExpressionValidator runat="server" ErrorMessage="Username is not suitable" Display="Dynamic"
ValidationExpression="^([a-zA-Z0-9]0,8)$" ID="req1"
ForeColor="Red" ControlToValidate="user" />
<asp:RequiredFieldValidator runat="server" Display="Dynamic" ErrorMessage="Username required" ID="req2"
ForeColor="Red" ControlToValidate="user"/>
【讨论】:
你可以去掉 type="button"【参考方案3】:您可以通过为按钮添加“onclick”事件处理程序来解决此问题,如下所示:
<button id="submitbtn" type="button" runat="server" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions("ctl00$MainContent$submitbtn", "", true, "", "", false, false))">Sign up</button>
或
使用 Asp.Net 按钮控件,它将具有由 Asp.Net 呈现的 onclick 处理程序。
<asp:Button ID="submitbtn" Text="Sign up" runat="server" />
似乎只有在调用 'WebForm_DoPostBackWithOptions' 函数时,才会触发验证。
【讨论】:
以上是关于RegularExpressionValidator 有效,但 RequiredFieldValidator 无效的主要内容,如果未能解决你的问题,请参考以下文章