UpdatePanel を使用しており、CompareValidator を 2 つのテキスト ボックスに配置して、ユーザーが入力したパスワードと確認が同じであることを確認したいと考えています。
これは問題なく動作しています (私は VS2008 を使用しており、.NET 3.5 を使用しています)。小さな問題が 1 つあります。
ユーザーが最初のテキストボックスをクリックするとすぐに、2 番目のテキストボックスに入力する前に検証が開始されます。これは、プログラム的には実際の問題を引き起こしているわけではありません (発生するのは、エラー メッセージが表示され、確認を入力すると消えるだけです) が、テスターはそれが問題であると述べています。「保存」をクリックするまで検証が開始されない限り、UA テストに合格しません。
両方のボックスにテキストを入力するまで、CompareValidator が起動しないようにするにはどうすればよいですか?
編集:
マークアップの例を次に示します。
<div>
<div><asp:Label runat="server" ID="lblPassword" Text="Password"/></div>
<div><asp:TextBox runat="server" TextMode="password" ID="txtPassword" size="25" /></div>
</div>
<div>
<div><asp:Label runat="server" ID="lblConfirmPassword" Text="Confirm Password"/></div>
<div><asp:TextBox runat="server" TextMode="password" ID="txtConfirmPassword" size="25" /></div>
</div>
<asp:CompareValidator ID="CompareValidator1" ValidationGroup="PublishPassValidation" ControlToValidate="txtPassword" ControlToCompare="txtConfirmPassword" runat="server" ErrorMessage="Passwords do not match"></asp:CompareValidator>
上記は、ページ上の UpdatePanel の ContentTemplate 内に含まれるコントロール内にあります。
(簡潔にするために、CSS クラスとスタイルは削除されています)