占用空间的必需和RegularExpression验证器

JAc*_*k28 4 asp.net

我遇到了asp.net的字段验证器在我的页面占用空间的问题.我一直在搜索,文档说要使用Display ="Dynamic"来阻止验证器占用空间.但是,当我使用它时,始终显示错误消息.

我究竟做错了什么?

我只想在用户点击"保存"按钮时显示错误消息,或者丢失对文本框的关注.而且我不希望验证者占用空间.

     <p>Please enter a new email:</p> 
     <asp:TextBox runat="server" MaxLength="255" ID="TextBoxEmail" />

     <asp:RequiredFieldValidator ID="RequiredFieldValidator1"  
          ValidationGgroup="Email" 
          ErrorMessage="Please enter an email" 
          ControlToValidate="TextBoxEmail" runat="server"></asp:RequiredFieldValidator>

     <asp:RegularExpressionValidator ID="RegularExpressionValidator2" 
         ValidationGroup="Email"
          ControlToValidate="TextBoxEmail"                    
          ErrorMessage="Please enter valid email"
          runat="server"      
          ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" />


      <p>Please re-enter your email:</p> 
      <asp:TextBox runat="server" ID="TextBoxEmail2" />


      <asp:LinkButton ValidationGroup="Email" runat="server" Text="Save"  OnClick="linkbuttonSave_Click"  />
Run Code Online (Sandbox Code Playgroud)

Win*_*Win 10

我在你的代码中只注意到你有一个拼写错误ValidationGgroup="Email".它应该是ValidationGroup="Email"

除此之外,Display="Dynamic"对我有用.

在此输入图像描述

点击后,提交按钮 -

在此输入图像描述

<p>
    Please enter a new email:</p>
<asp:TextBox runat="server" MaxLength="255" ID="TextBoxEmail" />
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" ValidationGroup="Email"
    ErrorMessage="Please enter an email" ControlToValidate="TextBoxEmail" runat="server"
    Display="Dynamic"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegularExpressionValidator2" ValidationGroup="Email"
    ControlToValidate="TextBoxEmail" ErrorMessage="Please enter valid email" runat="server"
    ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" Display="Dynamic" />
<p>
    Please re-enter your email:</p>
<asp:TextBox runat="server" ID="TextBoxEmail2" />
<asp:CompareValidator ID="PasswordCompare" runat="server" ControlToCompare="TextBoxEmail"
    ControlToValidate="TextBoxEmail2" CssClass="failureNotification" Display="Dynamic"
    ErrorMessage="Must match." ValidationGroup="Email"></asp:CompareValidator>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" ValidationGroup="Email"
    ErrorMessage="Please enter an confirm email" ControlToValidate="TextBoxEmail2" runat="server"
    Display="Dynamic"></asp:RequiredFieldValidator>
<asp:LinkButton ID="LinkButton1" ValidationGroup="Email" runat="server" Text="Save"
    OnClick="linkbuttonSave_Click" />
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你指出错字!我想我弄清楚问题是什么.我给了我的验证器一个带有display:block的CssClass.而且我认为它总是在验证器控件中使用display ="dynamic"来显示css. (3认同)