当我调用此函数以从客户端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 <b>Occupation</b>"
SetFocusOnError="True"> Required</asp:RequiredFieldValidator>
也许有一种方法可以启用(必需的)验证器,而无需同时执行验证(至少在用户选择了它之前?)
我想验证txtSpecifyOccupation文本框仅在页面提交时发生,或者当用户标记了所需的txtSpecifyoccupation文本框时。
我怎样才能做到这一点?
答案 0 :(得分:0)
不要调用ValidatorEnable方法。相反,请获取对验证控件的引用,并根据需要简单地设置其“启用”属性。
要清除验证控件的错误文本,请将innerText属性设置为“”。