3

この関数を呼び出してクライアントjavascriptからバリデーターを有効にしたとき:

`ValidatorEnable(document.getElementById('<%=valPassportOtherText.ClientID%>'), true); //enable`  validation control

必要な検証コントロールはすぐに検証を実行し、関連するテキストボックスの値を空白で検出し、フォーカスをテキストボックスに設定しました(SetFocusOnErrorがtrueに設定されていたため)。その結果、副作用として、検証コントロールに関連付けられているコントロール、つまりtxtSpecifyOccupationにフォーカスが移動しました。

                          <asp:TextBox ID="txtSpecifyOccupation" runat="server" AutoCompleteType="Disabled"
                                        CssClass="DefaultTextBox DefaultWidth" MaxLength="24" Rows="2"></asp:TextBox>
                                    <asp:RequiredFieldValidator ID="valSpecifyOccupation" runat="server" ControlToValidate="txtSpecifyOccupation"
                                        ErrorMessage="1.14b Please specify your &lt;b&gt;Occupation&lt;/b&gt;" 
                                        SetFocusOnError="True">&nbsp;Required</asp:RequiredFieldValidator>

おそらく、(必須の)バリデーターを同時に検証を実行せずに有効にする方法があります(少なくともユーザーがタブを外すまでは?)

txtSpecifyOccupationテキストボックスの検証は、ページの送信時、またはユーザーが必要なtxtSpecifyoccupationテキストボックスにタブを付けたときにのみ発生するようにしたいと思います。

どうすればこれを達成できますか?

4

1 に答える 1

0

ValidatorEnableメソッドを呼び出さないでください。代わりに、検証コントロールへの参照を取得し、必要に応じてその「有効」プロパティを設定するだけです。

検証コントロールのエラーテキストをクリアするには、innerTextプロパティを""に設定します。

于 2010-05-01T05:41:59.160 に答える