Как включить контроль валидации без одновременной немедленной проверки? - PullRequest
3 голосов
/ 01 мая 2010

Когда я вызвал эту функцию, чтобы включить валидатор из клиентского JavaScript:

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

требуемый элемент управления проверкой немедленно выполнил проверку, обнаружил значение в соответствующем текстовом поле пустым и установил фокус на текстовое поле (поскольку для SetFocusOnError было установлено значение true). В результате побочный эффект заключался в том, что фокус был смещен на элемент управления, связанный с элементом управления Validation, например, 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 голосов
/ 01 мая 2010

Не вызывайте метод ValidatorEnable. Вместо этого получите ссылку на элемент управления проверкой и просто установите его свойство «enabled» по желанию.

Чтобы очистить текст ошибки элемента управления проверкой, установите для свойства innerText значение "".

...