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