RegularExpressionValidator可以工作,但RequiredFieldValidator没有

时间:2016-09-01 05:11:02

标签: c# jquery html asp.net validation

我正在尝试在asp.net Web表单中为我的文本框设置RegularExpressionValidator和RequiredFieldValidator。我的RegularExpressionValidator工作并给出错误消息,但单击提交按钮时,我的RequiredFieldValidator不显示错误消息。我也尝试将ValidationGroup添加到我的文本框和按钮以及RegularExpressionValidator和RequiredFieldValidator,但没有任何改变。你能帮忙解决一下吗? 顺便说一句,我已经添加了

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

到我的webconfig。谢谢。

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

3 个答案:

答案 0 :(得分:0)

试试这个

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

答案 1 :(得分:0)

您可以通过添加&#39; onclick&#39;来解决问题。按钮的eventhandler如下:

<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

使用Asp.Net按钮控件,它将具有由Asp.Net呈现的onclick处理程序。 <asp:Button ID="submitbtn" Text="Sign up" runat="server" />

似乎只有&#39; WebForm_DoPostBackWithOptions&#39;调用函数,验证将触发。

答案 2 :(得分:0)

哦,哥们,你犯了一个拼写错误,输入必须提交

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

Type =“submit”会将页面发回服务器,而type不会将页面发布到服务器。

另一种方法是使用Page.isValid属性。