简体   繁体   English

RegularExpressionValidator有效,但RequiredFieldValidator无效

[英]RegularExpressionValidator works but RequiredFieldValidator does not

I am trying to set RegularExpressionValidator and RequiredFieldValidator for my textbox in an asp.net web form. 我试图在asp.net Web表单中为我的文本框设置RegularExpressionValidator和RequiredFieldValidator。 My RegularExpressionValidator works and give the error message but my RequiredFieldValidator does not show the error message when I click the submit button. 我的RegularExpressionValidator可以工作并给出错误消息,但是当我单击“提交”按钮时,我的RequiredFieldValidator不会显示错误消息。 I have also tried adding ValidationGroup to my textbox and button and RegularExpressionValidator and RequiredFieldValidator, but nothing changed. 我还尝试将ValidationGroup添加到我的文本框和按钮以及RegularExpressionValidator和RequiredFieldValidator,但是没有任何更改。 Could you please help we with it? 您能帮我们吗? By the way I have already added 顺便说一句,我已经添加了

<appSettings>
      <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
    </appSettings>

to my webconfig. 到我的webconfig。 Thank you. 谢谢。

<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>  

Try this 尝试这个

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"/>

You can fix the issue by adding the 'onclick' eventhandler for the button as below: 您可以通过为按钮添加“ onclick”事件处理程序来解决此问题,如下所示:

<button id="submitbtn" type="button" runat="server" onclick="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$MainContent$submitbtn&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))">Sign up</button>

OR 要么

Use Asp.Net button control, which will have the onclick handler rendered by Asp.Net. 使用Asp.Net按钮控件,它将具有由Asp.Net呈现的onclick处理程序。 <asp:Button ID="submitbtn" Text="Sign up" runat="server" />

Seems like only if 'WebForm_DoPostBackWithOptions' function is invoked, validation will fire. 似乎仅当调用“ WebForm_DoPostBackWithOptions”功能时,验证才会触发。

oh buddy,you have made a typo mistake,type must be submit 哦,伙计,您犯了错别字,必须提交类型

<button id="submitbtn" type="submit" runat="server">Sign up</button>

Type="submit" will post the page back to the server whereas type doesnt post the page to the server. Type =“ submit”会将页面发布回服务器,而type不会将页面发布到服务器。

Another way is using Page.isValid property. 另一种方法是使用Page.isValid属性。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM