Формат телефонного номера
Формат телефонного номера
Добрый день.
Каким образом для поля задать формат телефонного номера вида (987) 654-32-10?
В попытках разобраться в этом вопросе удалось лишь после ввода отформатировать строку, т.е. человек вводит сплошной набор цифр, например, 9876543210, а затем скрипт форматирует как нужно в (987) 654-32-10.
Код: Однако требуется, чтобы все скобки и дефисы были проставлены ДО и ВО ВРЕМЯ ввода номера (без возможности их удаления), чтобы у человека было понимание сколько цифр и как вводить номер.
P.S. Как без написания триггеров и скриптов задать к какому следующему полю переходить после нажатия клавиши Tab?
P.S.S. Заранее спасибо за помощь!
Каким образом для поля задать формат телефонного номера вида (987) 654-32-10?
В попытках разобраться в этом вопросе удалось лишь после ввода отформатировать строку, т.е. человек вводит сплошной набор цифр, например, 9876543210, а затем скрипт форматирует как нужно в (987) 654-32-10.
Код: Однако требуется, чтобы все скобки и дефисы были проставлены ДО и ВО ВРЕМЯ ввода номера (без возможности их удаления), чтобы у человека было понимание сколько цифр и как вводить номер.
P.S. Как без написания триггеров и скриптов задать к какому следующему полю переходить после нажатия клавиши Tab?
P.S.S. Заранее спасибо за помощь!
Re: Формат телефонного номера
Обычно так в ФМ и делают. Пользователь вводит в свободном формате телефонный номер, а на поле "вешается" auto-enter (ну или тригер) который форматирует набор цифр в формат телефонного номера (для этого есть можно использовать одну из многочисленных custom function - посмотрите в интернете)
Ну или заморачиваться и сделать для "разрядов" номера отдельные поля и отслеживать тригером количество введенных символов и авто переход в следующее поле - но не думаю, что это будет удобнее для пользователя.
PS Порядок перехода между полями задается в Set Tab Order меню Layouts
Ну или заморачиваться и сделать для "разрядов" номера отдельные поля и отслеживать тригером количество введенных символов и авто переход в следующее поле - но не думаю, что это будет удобнее для пользователя.
PS Порядок перехода между полями задается в Set Tab Order меню Layouts
-
- Сообщения: 106
- Зарегистрирован: 21 сен 2017, 18:48
- Откуда: Минск
Re: Формат телефонного номера
В логику обработки можно заложить еще автодополнение кода города, кода страны и т.п.
Альтернативный подход -- указывать еще и шаблон (###) ###-##-## для отображения этого номера телефоны (разные для разных стран или городских номеров)
посмотрите, например valueMask ( "0123456789" ; "(###) ###-##-##" ; "#" )
по ссылке https://www.briandunning.com/cf/1643
(или поищите идеи по ключевым словам Phone или Mask )
Альтернативный подход -- указывать еще и шаблон (###) ###-##-## для отображения этого номера телефоны (разные для разных стран или городских номеров)
посмотрите, например valueMask ( "0123456789" ; "(###) ###-##-##" ; "#" )
по ссылке https://www.briandunning.com/cf/1643
(или поищите идеи по ключевым словам Phone или Mask )
-
- Сообщения: 106
- Зарегистрирован: 21 сен 2017, 18:48
- Откуда: Минск
Re: Формат телефонного номера
Проблема показалась интересной, так как в других программах, есть встроенные средства для ввода по маске.
В FileMaker подсказка для ввода - это основной инструмент, доступный по умолчанию.
Но совсем не сложно организовать ввод по маске, который и визуально будет смотреться очень даже хорошо, и по функционалу будет расширяемый. или так
Я обобщил 4 варианта организации такого ввода, которые я использовал на практике, в небольшом файле, возможно пригодится кому-то еще
1. Перехват и обработка значений с клавиатуры
2. Использование custom function и шаблонов для форматирования
3. Запуск по триггеру скрипта для форматирования значения custom function
4. Поле с множественными значениями и триггер для перехода NextField
В FileMaker подсказка для ввода - это основной инструмент, доступный по умолчанию.
Но совсем не сложно организовать ввод по маске, который и визуально будет смотреться очень даже хорошо, и по функционалу будет расширяемый. или так
Я обобщил 4 варианта организации такого ввода, которые я использовал на практике, в небольшом файле, возможно пригодится кому-то еще
1. Перехват и обработка значений с клавиатуры
2. Использование custom function и шаблонов для форматирования
3. Запуск по триггеру скрипта для форматирования значения custom function
4. Поле с множественными значениями и триггер для перехода NextField
-
- Сообщения: 338
- Зарегистрирован: 11 сен 2017, 13:42
- Откуда: Санкт-Петербург
Re: Формат телефонного номера
Алексей, проверьте первый вариант. Он дает сбой
и, если не сложно, доработайте и допишите, пожалуйста, пятый вариант. Я набросок вставил на место 4-го варианта.
Добавлено новое текстовое поле. Нужно сделать его вычисляемым по формату маски (пробел в маске игнорировать)
и, если не сложно, доработайте и допишите, пожалуйста, пятый вариант. Я набросок вставил на место 4-го варианта.
Добавлено новое текстовое поле. Нужно сделать его вычисляемым по формату маски (пробел в маске игнорировать)
- Вложения
-
- phone.zip
- (76.49 КБ) 453 скачивания
-
- Сообщения: 338
- Зарегистрирован: 11 сен 2017, 13:42
- Откуда: Санкт-Петербург
Re: Формат телефонного номера
А вот и не получается вычислить маску из шаблона. Поэтому мой вариант следует отбросить
Мне очень понравился вариант 3
Предлагаю разместить файлик с примерами в "Законченных решениях"
Мне очень понравился вариант 3
Предлагаю разместить файлик с примерами в "Законченных решениях"
-
- Сообщения: 106
- Зарегистрирован: 21 сен 2017, 18:48
- Откуда: Минск
Re: Формат телефонного номера
Андрей, спасибо большое за обратную связь.
Я обновил код для варианта 1 (он все равно не идеальный, я привожу его больше для демонстрации подхода)
Добавил вариант 5. Вы абсолютно правы, при преобразовании возникают ньюансы, связанные с тем, что число интервалов между значениями в группе должно быть меньше на один чем число подстановочных символов. В примере 5 добавлена обработка для разделителей групп "(", ")", "-" но решение все равно получилось не таким универсальным, как пример 3.
Кроме этого я добавил несколько примеров оформления варианта 4, чтобы лучше продемонстрировать плюсы оформления (при том что основной минус для некоторых ситуаций - жесткая фиксация формата сохраняется). Имхо, вариант больше подойдет для различных кодов ИНН, ОКУД, ОКВЭД. Для номеров телефонов важно оставлять возможность ввести номер в нестандартном формате. (либо оставлять дополнительное поля для ввода номера телефона в произвольном формате)
Я обновил код для варианта 1 (он все равно не идеальный, я привожу его больше для демонстрации подхода)
Добавил вариант 5. Вы абсолютно правы, при преобразовании возникают ньюансы, связанные с тем, что число интервалов между значениями в группе должно быть меньше на один чем число подстановочных символов. В примере 5 добавлена обработка для разделителей групп "(", ")", "-" но решение все равно получилось не таким универсальным, как пример 3.
Кроме этого я добавил несколько примеров оформления варианта 4, чтобы лучше продемонстрировать плюсы оформления (при том что основной минус для некоторых ситуаций - жесткая фиксация формата сохраняется). Имхо, вариант больше подойдет для различных кодов ИНН, ОКУД, ОКВЭД. Для номеров телефонов важно оставлять возможность ввести номер в нестандартном формате. (либо оставлять дополнительное поля для ввода номера телефона в произвольном формате)
Последний раз редактировалось Alexei Sytch 14 янв 2019, 19:18, всего редактировалось 1 раз.
-
- Сообщения: 338
- Зарегистрирован: 11 сен 2017, 13:42
- Откуда: Санкт-Петербург
Re: Формат телефонного номера
Алексей, в примере номер 5 вычисление формата в "подложке" можно сделать не в самом поле, а в плейсхолдере.
Давайте разместим файлик в "Решениях", чтобы в будущем облегчить поиск
Давайте разместим файлик в "Решениях", чтобы в будущем облегчить поиск
-
- Сообщения: 106
- Зарегистрирован: 21 сен 2017, 18:48
- Откуда: Минск
Re: Формат телефонного номера
Андрей, если не сложно, пришлите мне небольшой пример, можно в личку, чтобы лучше понять идею оформления, я подправлю файлик перед тем как выложить в "Решениях". Посмотрел в Вики сколько разных форматов телефонных номеров в разных странах и даже в рамках одной страны и задумался, стоит ли овчинка выделки для обычной CRM или адресной книги (имеется ввиду жесткое ограничение формата). Как пользователь я бы наверное хотел увидеть и редактировать рекомендуемый формат для ввода , но при необходимости удалить его и ввести в своем виде.