Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
ASP.NET Validator вынуждает нажимать tab дважды для перехода к другому полю
|
|||
|---|---|---|---|
|
#18+
Если введённое значение корректно, то по tab переход на следующее поле осуществляется сразу. Если значение некорректно (не проходит валидацию), то приходится нажимать tab дважды, чтобы перейти на следующее поле. Я так понял, что при потере фокуса (blur) срабатывает валидация, и в случае неправильного ввода фокус остаётся на текущем поле, чтобы пользователь смог исправить значение. Однако при этом никаких сообщений об ошибках не выводится. Они появляются только при отправке формы, при этом фокус устанавливается на первом поле с некорректными данными. Я бы хотел, чтобы фокус менялся сразу, а остальное оставить без изменений, т. е. сообщения ошибках появляются только при отправке формы. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ASP.NET 4.0. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 12:23 |
|
||
|
ASP.NET Validator вынуждает нажимать tab дважды для перехода к другому полю
|
|||
|---|---|---|---|
|
#18+
Сирин, Атрибут SetFocusOnError="true" на всех твоих валидаторах на какие-нибудь мысли наводит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 12:29 |
|
||
|
ASP.NET Validator вынуждает нажимать tab дважды для перехода к другому полю
|
|||
|---|---|---|---|
|
#18+
Установка SetFocusOnError в False устраняет проблему с табом, но тогда и при сабмите при наличии ошибки не происходит фокусировка на первом невалидном поле. В целом, такое поведение уже приемлемо, но было бы лучше, если бы фокус переходил при сабмите при наличии ошибки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 12:59 |
|
||
|
ASP.NET Validator вынуждает нажимать tab дважды для перехода к другому полю
|
|||
|---|---|---|---|
|
#18+
СиринВ целом, такое поведение уже приемлемо, но было бы лучше, если бы фокус переходил при сабмите при наличии ошибки. Напиши свой валидатор, раз не устраивает поведение стандартного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 13:48 |
|
||
|
ASP.NET Validator вынуждает нажимать tab дважды для перехода к другому полю
|
|||
|---|---|---|---|
|
#18+
А штатного способа отключения проверки на onblur нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2012, 15:31 |
|
||
|
ASP.NET Validator вынуждает нажимать tab дважды для перехода к другому полю
|
|||
|---|---|---|---|
|
#18+
javascript Page_Validators - перечисление всех валидаторов на странице Page_Validators[index].isvalid - валиден ли валидатор Page_Validators[index].controltovalidate - id элемента проверяемого валидатором в OnClientClick твоей сабмитящей кнопки можешь написать что-то вроде javascript:return myValidate(); в myValidate пройтись по всем валидоторам на странице, и при встрече первого невалидного - установить фокус (document.getElementById(Page_Validators[index].controltovalidate).focus()) и вернуть false, чтобы не было сабмита ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2012, 10:52 |
|
||
|
ASP.NET Validator вынуждает нажимать tab дважды для перехода к другому полю
|
|||
|---|---|---|---|
|
#18+
Сирин, ну что, справился? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2012, 17:54 |
|
||
|
ASP.NET Validator вынуждает нажимать tab дважды для перехода к другому полю
|
|||
|---|---|---|---|
|
#18+
SanSYS, Спасибо за вариант, но пока пошёл по пути наименьшего сопротивления — SetFocusOnError = False. Если потребуется фокусировка, то попробую ваш алгоритм. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2012, 10:55 |
|
||
|
ASP.NET Validator вынуждает нажимать tab дважды для перехода к другому полю
|
|||
|---|---|---|---|
|
#18+
СиринSanSYS, Спасибо за вариант, но пока пошёл по пути наименьшего сопротивления — SetFocusOnError = False. Если потребуется фокусировка, то попробую ваш алгоритм. Не правильное решение, ты прежде всего программист, потому должен попробовать, даже если не внедришь, иначе, когда подобная проблема возникнет вновь - придется вновь изобретать велосипед ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2012, 13:04 |
|
||
|
ASP.NET Validator вынуждает нажимать tab дважды для перехода к другому полю
|
|||
|---|---|---|---|
|
#18+
SanSYS, Инициализируя OnClientClick, мы затираем то, что ASP.NET туда пишет. А он пишет свою функцию, которая валидирует и выводит сообщения об ошибках . Получается, что фокус устанавливается на первом контроле, но сообщения не выводятся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2012, 17:00 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38046934&tid=1359010]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
24ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 253ms |
| total: | 376ms |

| 0 / 0 |
