如何重新启用验证控件,同时执行立即验证?

时间:2010-05-01 04:46:17

标签: asp.net javascript validation-controls

当我调用此函数以从客户端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文本框时。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

不要调用ValidatorEnable方法。相反,请获取对验证控件的引用,并根据需要简单地设置其“启用”属性。

要清除验证控件的错误文本,请将innerText属性设置为“”。