|
Как обработать сход с поля ввода? | ☑ | ||
---|---|---|---|---|
0
kiwi
04.07.14
✎
13:47
|
В обычной форме есть текстовое поле ввода. Необходимо при сходе с этого поля *даже при неизменившемся значении* обработать такое событие. Как это сделать? (ПриИзменении и ОкончаниеВводаТекста не канают)
|
|||
1
kiwi
04.07.14
✎
14:00
|
суть в чём: когда введено неверное значение в текстовое поле ввода, то при переходе на след. элемент управление это можно отловить с помощью ПриИзменении и, например, вернуть фокус в то же поле ввода. Но если это ошибочное значение так и не изменить, а тупо ещё раз нажать ввод, то повторно отловить сход с этого поля уже ничем не удаётся.
Я правильно понимаю, что в 1С вообще никак не поймать потерю фокуса элементом управления? |
|||
2
Enders
04.07.14
✎
14:02
|
(1) Лови это не ПриИзменении, а в ОбработкеВыбора/ОкончаниеВводаТекста. Если введено некорректное значение отказывайся от изменения, зачем лишний гемор?)
|
|||
3
kiwi
04.07.14
✎
14:06
|
(2) ОкончаниеВводаТекста не годится, т.к. в повторном сходе с поля ввода никакой текст не вводился, соответственно события ОкончаниеВводаТекста не произошло и эта процедура не вызывается.
Ща попробую ОбработкуВыбора... |
|||
4
Enders
04.07.14
✎
14:11
|
(3) Так правильно, пользователь ввел не то значение. Вы выругались на него и откатились к старым/пустым. Пользюк может проигнорить это и вводит другие данные.
Дальше перед записью проверять реквизит на заполненность и бить током если он не заполнен. Хотя может и есть способ отловить события схода с элемента, но увы, я не знаю=) Можно при активизации других реквизитов, смотреть на этот и если что возвращать ему активность... хз |
|||
5
ChiginAV
04.07.14
✎
14:11
|
(1) Ты же потом это значение где-то использовать будешь (записывать или еще как-то). Вот в начале той процедуры и проверяй корректность введенных значений
|
|||
6
kiwi
04.07.14
✎
14:15
|
(4) да, пожалуй придется именно чистить введённое, тогда очевидно будет срабатывать.
|
|||
7
Ринат-СПб
04.07.14
✎
14:23
|
(6) если это текст, да еще и на сотню символов, то когда ты ошибся на один символ и тебе очищают поле - ты будешь очень рад :)
|
|||
8
Ринат-СПб
04.07.14
✎
14:25
|
и как ты будешь проверять правильность ввода текстового поля? будет несколько вариантов, что там можно написать? Не проще тогда сделать перечисление и дать из них выбирать пользователю?
|
|||
9
acsent
04.07.14
✎
14:26
|
у формы есть ПриАктивизацииОбъекта
|
|||
10
samozvanec
04.07.14
✎
14:31
|
(8) нет нет, там будет 6 вариантов текста от 50 до 150 символов без права на ошибку при вводе)
(0) проверяй потом! в (8) кстати дело говорят, если это применимо |
|||
11
YF
04.07.14
✎
14:32
|
(10) Забей эти 6 вариантов и предложи выбор из табличного документа, например
|
|||
12
Enders
04.07.14
✎
14:33
|
(8) а если там вводится номер телефона?)
Проверить корректность ввода можно, а вот сделать перечислением нет;) |
|||
13
Ринат-СПб
04.07.14
✎
14:41
|
(12) тогда после первого неправильного изменения поля подключи обработчик ожидания, который отключиться только с правильным вводом данных
|
|||
14
samozvanec
04.07.14
✎
14:51
|
(11) мне не надо, я со скуки
|
|||
15
samozvanec
04.07.14
✎
14:51
|
(12) маску
|
|||
16
PR
04.07.14
✎
14:53
|
(0) В 1С нет события "ПотеряФокуса"
|
|||
17
Enders
04.07.14
✎
14:54
|
(15) это как вариант может быть номер телефона. могут быть и другие данные и не всегда можно обойтись маской;)
(13) Да мне это не надо, я б проверял значение реквизита перед записью, или, если это обработка, то в начале процедуры :) |
|||
18
Ринат-СПб
04.07.14
✎
15:00
|
(17) Сорри... перепутал тебя с ТС
я бы тоже проверял перед записью :) Но ТС хочет по извращаться :))) |
|||
19
samozvanec
04.07.14
✎
15:05
|
(17) а вот тут действительно становится интересно, что же хочет ТС)
|
|||
20
Ринат-СПб
04.07.14
✎
15:11
|
(19) ТС пропал :)
|
|||
21
kiwi
04.07.14
✎
15:49
|
ТС хочет примерно следующее:
в форме есть несколько полей ввода, при вводе в первое из них с помощью ПриИзменении проверяется соответствие некоему шаблону (ну или просто, достаточное ли количество символов введено), после чего фокус переходит в следующее поле и т.д. Так вот, если сразу ввести что-то неподходящее, то после соотв. предупреждения хотелось бы вернуться в это поле и, например, добавить недостающую цифру, НО, чтобы при этом было невозможно энтером перейти в следующее поле ничего не исправив |
|||
22
Enders
04.07.14
✎
15:57
|
(21) ну можно вообще извратится)
После первой проверки, когда сообщил что пользователь не правильно ввел данные. Циклом пробегаешь по всем элементам формы и ставишь доступность в ложь (кроме твоего элемента) Дальше у пользователя только 2 варианта: 1. Закрыть форму (но при закрытии оно всё равно захочет сохранить изменения, так что от проверки перед записью не уйти) 2. Исправить. Тогда снова включается твоя проверка и если всё хорошо, то возвращает доступность всем элементам ;) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |