2013-05-30 13 views
7

簡単な登録フォームをasp.netに作成しています。 ここに私の問題があります: 私のpasswordfieldの確認が空の場合、それでもフォームを送信します。私はcompareToValidateを使用しています。また、requiredvalidatorを使用する必要があります。私はasp.netに新しいですが、comparevalidatorはパスワードが123で、confirmpasswordが空であると言うとエラーを生成しません。ASP: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> 

答えて

20

はあなたにも必要なバリデータを提供しなければなりません!比較バリデーターは、ターゲットコントロールとのみ値を比較し、ユーザーに警告します。

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

これがあなたを手助けします!

+0

はどうもありがとうございまし作業! – Dynamiite

+0

バリデータのツールチップは、エラーが発生するまで表示されていないときは、少し無意味だと思いますか? – Fandango68

1

IMHOそれはまさにそれが想定されているものです。 CompareValidatorコントロールは、ある入力コントロールの値を別の入力コントロールの値と比較するため、または固定値に比較するために使用されます。

入力コントロールが空の場合、検証関数は呼び出されず、検証は成功します。ユーザーが入力コントロールをスキップできないようにするには、RequiredFieldValidatorコントロールを使用します。

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

0

簡単な方法 その本当に <asp:CompareValidator runat="server" ID="Comp1" ControlToValidate="tbPassword" ControlToCompare="ConfirmPass" Text="Password mismatch" Font-Size="11px" ForeColor="Red" />