0

Web フォームに txtPassword と txtPassword2 の 2 つのテキスト ボックス コントロールがあります。

CompareValidator コントロールを使用して、両方のフィールドが一致する必要があります。

txtPassword = "" 
txtPassword2 = "" 
No compare error 
txtPassword throws it's required field error

txtPassword = "1" 
txtPassword2 = "" 
No compare error

txtPassword = "" 
txtPassword2 = "1" 
Compare error 
txtPassword throws it's required field error

txtPassword = "1" 
txtPassword2 = "2" 
Compare error

txtPassword2 に空白の値がない理由がわかりませんか?

コードは次のとおりです。

<asp:TextBox ID="txtPassword" Text="" TextMode="Password" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Required!" ControlToValidate="txtPassword"></asp:RequiredFieldValidator>

<asp:TextBox ID="txtPassword2" Text="" TextMode="Password" runat="server"></asp:TextBox>
<asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="Passwords do not match!" ControlToValidate="txtPassword2" ControlToCompare="txtPassword"></asp:CompareValidator>
4

2 に答える 2

0

asp:RequiredFieldValidatorのみを追加しているためtxtPasswordtxtPassword2空白のままにすると必須フィールド エラーは発生しません。追加する必要があるのはasp:RequiredFieldValidatorfortxtPassword2です。また、検証グループを指定する必要があります。したがって、コードは次のようになります。

<asp:TextBox ID="txtPassword" Text="" TextMode="Password" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ErrorMessage="Required!" ControlToValidate="txtPassword" ValidationGroup="checkNull"></asp:RequiredFieldValidator>

<asp:TextBox ID="txtPassword2" Text="" TextMode="Password" runat="server"></asp:TextBox>

<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ErrorMessage="Required!" ControlToValidate="txtPassword2" ValidationGroup="checkNull"></asp:RequiredFieldValidator>

<asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="Passwords do not match!" ControlToValidate="txtPassword2" ControlToCompare="txtPassword"></asp:CompareValidator>
于 2014-11-05T06:28:46.643 に答える
0

「挿入」中にパスワードを要求し、RequiredFieldValidators両方のパスワードボックスがCompareValidator一致していることを確認するために使用される同様の状況がありました。

編集モードでは、RequiredFieldValidatorsオフにして同じ問題に遭遇しましたTextbox。空白のままにすると、PasswordConfirm は一致を停止しませんでした。

とフィールドを入れ替えて 2CompareValidatorsを使用することでこれを解決しました。これにより、相互に検証することが強制され、どちらか一方に何かが入力された場合にチェックが強制されました。ControlToValidateControlToCompare

<asp:CompareValidator ID="CompareValidator1" runat="server" ControlToValidate="tbPassword" ControlToCompare="tbConfirmPassword"  Type="String" Display="Dynamic" ForeColor="Red" ErrorMessage="<br />The new passwords do not match" />
<asp:CompareValidator ID="CompareValidator2" runat="server" ControlToValidate="tbConfirmPassword" ControlToCompare="tbPassword"  Type="String" Display="Dynamic" ForeColor="Red" ErrorMessage="<br />The new passwords do not match" />
于 2016-12-07T19:36:37.090 に答える