4

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

3 に答える 3

11

あなたのコードで私が気付いた唯一のことは、あなたのタイプミスです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" />
于 2013-04-30T20:59:35.677 に答える
3

プロパティ Display を "Dynamic" または "none" に設定できます。2 番目の設定では、検証の概要にのみエラー メッセージが表示されます。

于 2016-07-11T14:45:25.540 に答える