ограничить ввод номеров

Тема в разделе "Lotus - Программирование", создана пользователем oleg7, 8 окт 2009.

  1. oleg7

    oleg7 Гость

    Подскажите, подалуйста. Как ограничить формат ввода телефонных номеров в поле, т.е. можно было вводить только в виде +3 8 (ххх) ххх хх хх
     
  2. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Читай про @Matches.
    Делаешь проверку в Input Validation.
     
  3. oleg7

    oleg7 Гость

    делаю вот так
    Код (Text):
    @If(@Matches(назвПоля;"\\+38 {0-9}{0-9}{0-9} {0-9}{0-9}{0-9} {0-9}{0-9} {0-9}{0-9}"); @Success; @Failure("неверный формат"))
    а можно как-то добавить туда скобочки ()?


    и еще не могу понять, как сделать, чтобы не учитовались пробелы. Возможно ли это?
     
  4. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Скобочки тоже так пиши: {(} и {)}
    Про пробелы не понял. Просто убери их и не будут учитываться.
     
  5. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.047
    Симпатии:
    18
    @ReplaceSubstring(назвПоля; " "; "") - перед передачи в матч удали пробелы и всё будет типтоп
     
  6. oleg7

    oleg7 Гость

    возникла теперь такая проблема. Надо, чтобы можно было вносить в поле несколько номеров.
    Делаю поле Allow multiple values, на третей закладке свойств поля выбираю New Line в Separate values when user enters и Display separate values with.
    но теперь получается, что когда вносишь первый номер, то проверка работает, потом нажимаешь энтер и вводишь второй номер и проверка уже не срабатывает. Что делаю не так?
     
  7. Medevic

    Medevic Что это ? :)
    Lotus team

    Регистрация:
    10 дек 2004
    Сообщения:
    3.346
    Симпатии:
    2
    Смотри @Transform.
     
  8. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Или проверку всех значений на QuerySave с помощью Like.
    ----------------
    И вообще, надо отделять отображение (поля) от логики (библиотеки).
    Скорее всего, у тебя на форме будут ещё какие-то проверки и будет неудобно, если каждая проверка будет в своём поле.
    Поэтому я всё-таки советовал бы сделать ф-ию валидации, которую вызывать в нужном месте (QuerySave или где там ещё), что бы все проверки были централизованы, а не раскиданы по полям.

    Хотя InputTranslation я зачастую использую - по'trim'ать что-то или в этом роде, но вот когда проверка написана в InputValidation меня начинает потряхивать :)
     
  9. Kizarek86

    Kizarek86 Lotus team
    Lotus team

    Регистрация:
    20 июл 2007
    Сообщения:
    857
    Симпатии:
    5
    Ещё как вариант под номер телефона можно сделать шаблон из нескольких полей, при сохранении составлять из них номер в единое поле, а те удалять.
     
  10. oleg7

    oleg7 Гость

    спасибо за ответы.
    kizarek очень красиво звучит, но боюсь что не осилю :)
     
Загрузка...

Поделиться этой страницей