2013-05-30 16 views
7

Tworzę prosty formularz rejestracyjny w asp.net. Oto mój problem: Jeśli moje pole wyboru hasła jest puste, nadal przesyła formularz. Używam compareToValidate czy muszę również użyć requiredvalidator. Jestem nowy w asp.net, ale nie powinienem porównywać generatora błędów, jeśli powiedzmy, że hasło ma wartość 123, a hasło_prawo jest puste.ASP: Pole NET Confirm Password

 <fieldset> 
     <legend>Enter your data</legend> 
     <table> 
     <tr> 
     <td align="right">User Name :</td> 
     <td>&nbsp;</td> 
     <td align="left"> 
     <asp:TextBox ID="tbUsername" runat="server"></asp:TextBox> 
    <asp:RequiredFieldValidator ID="rfvUserName" runat="server" 
     ControlToValidate="tbUsername" 
     CssClass="ValidationError" 
     ErrorMessage="&laquo; (Required)" 
     ToolTip="User Name is a REQUIRED field" 
     ></asp:RequiredFieldValidator> 
     </td> 
</tr>`enter code here` 
<tr > 
<td align="right">Password&nbsp;:&nbsp;</td> 
<td>&nbsp;</td> 
<td align="left"> 
    <asp:TextBox ID="tbPassword" runat="server" TextMode="Password"></asp:TextBox> 
    <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
    ErrorMessage="&laquo; (Required)" 
    ControlToValidate="tbPassword" 
    CssClass="ValidationError" 

    ToolTip="Password is a REQUIRED field" 
    ></asp:RequiredFieldValidator> 
</td> 

</tr> 
<tr > 
<td align="right">Confirm Password&nbsp;:&nbsp;</td> 
<td>&nbsp;</td> 
<td align="left"> 
    <asp:TextBox ID="ConfirmPass" runat="server" TextMode="Password"></asp:TextBox> 
    <asp:CompareValidator ID="CompareValidator1" runat="server" 
    ControlToValidate="ConfirmPass" 
    CssClass="ValidationError" 
    ControlToCompare="tbPassword" 
    ErrorMessage="No Match" 
    ToolTip="Password must be the same" /> 

</td> 

</tr> 

Odpowiedz

20

Musisz podać wymaganą walidator jak dobrze! Porównaj walidator porówna wartość tylko z kontrolką celu i ostrzeże użytkownika.

<td align="left"> 
    <asp:TextBox ID="ConfirmPass" runat="server" TextMode="Password"></asp:TextBox> 

    <asp:CompareValidator ID="CompareValidator1" runat="server" 
    ControlToValidate="ConfirmPass" 
    CssClass="ValidationError" 
    ControlToCompare="tbPassword" 
    ErrorMessage="No Match" 
    ToolTip="Password must be the same" /> 

    <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
    ErrorMessage="&laquo; (Required)" 
    ControlToValidate="ConfirmPass" 
    CssClass="ValidationError" 
    ToolTip="Compare Password is a REQUIRED field"> 
    </asp:RequiredFieldValidator> 
</td> 

Mam nadzieję, że to pomoże!

+0

Dziękuję bardzo! – Dynamiite

+0

Etykieta narzędzia w walidatorze, gdy są niewidoczne, aż do wystąpienia błędu, jest trochę bezsensowna, nie sądzisz? – Fandango68

1

IMHO, że dokładnie to, co ma robić. Kontrolka CompareValidator służy do porównywania wartości jednej kontrolki wejściowej z wartością innego kontrolera wejściowego lub wartości stałej.

Jeśli kontrolka wprowadzania danych jest pusta, nie są wywoływane żadne funkcje sprawdzania poprawności i sprawdzanie poprawności kończy się pomyślnie. Użyj kontrolki RequiredFieldValidator, aby uniemożliwić użytkownikowi pominięcie kontroli wprowadzania.

referencyjny: http://msdn.microsoft.com/en-us/library/db330ayw(v=vs.100).aspx

0

Prosta Metoda Jej naprawdę działa <asp:CompareValidator runat="server" ID="Comp1" ControlToValidate="tbPassword" ControlToCompare="ConfirmPass" Text="Password mismatch" Font-Size="11px" ForeColor="Red" />