[РЕШЕНО] Как создать в форме поле номер телефона +7

Главные вкладки

Аватар пользователя alex-litvinov alex-litvinov 13 июля 2016 в 7:14

Доброе утро, задался такой идеей, как создать поле в модуле webform, для ввода номера телефона с уже введеным значением "+7" скобками для кода сотового оператора и остальными 7 цифрами. Вот пример http://www.gwd.ru/about/contacts/tsentralnyy-ofis/

Комментарии

Аватар пользователя Studio VIZA Studio VIZA 14 июля 2016 в 0:32

Какой порядок, скачиваем модуль вебформ_фонэ, затем, чтоб включить его потребуется https://www.drupal.org/project/phone Всё включаете, переходите на страницу редактирования самой вебформы и добавляем поле "Телефон", справа открывающийся список там есть новое значение "Номер телефона", выбираем его, жмём сохр и нас перебрасывает на вторую стр. редакции поля, там посередине, будет выбор из стран:

http://img.studioviza.ru/Shotw48ta.jpg
И чуть выше - Значение по умолчанию

+7( ) это впишите
Значение поля по умолчанию.Просмотр доступных токенов.

Работа видна, тестил не особо щас.

Аватар пользователя Studio VIZA Studio VIZA 15 июля 2016 в 3:27

"+7( bbbb )" is not a valid Russian phone number
Russian Phone numbers should ....
Чтобы завершить эту форму, пожалуйста, заполните проверочное слово ниже.
=========================
"+7 (BBBB)" не является допустимым русский номер телефона
     Российские телефонные номера должны ....
     Чтобы завершить эту форму, пожалуйста, заполните проверочное слово ниже.

это я у себя тестил

Аватар пользователя Studio VIZA Studio VIZA 15 июля 2016 в 3:25

Оттестил у вас всё норм
Напишите нам
Спасибо за ваше сообщение! Мы обязательно ознакомимся с ним и, если потребуется, свяжемся с вами по указанным контактам в ближайшее время.

Аватар пользователя shishka0228 shishka0228 16 июля 2016 в 15:35

если проблема с тем что вы можете ввести буквы
то вам стоит проверить поле регулярным выражением я писал вот такое
^[8\s\+7]+([\(\)\-\ ]*[0-9][\(\)\-\ ]*[0-9][\(\)\-\ ]*[0-9][\(\)\-\ ]*[0-9][\(\)\-\ ]*[0-9][\(\)\-\ ]*[0-9][\(\)\-\ ]*[0-9][\(\)\-\ ]*[0-9][\(\)\-\ ]*[0-9][\(\)\-\ ]*[0-9])$
но вы можете придумать свое

Аватар пользователя abutan abutan 16 июля 2016 в 16:11
2

Честно говоря не очень понимаю для чего такие сложные пляски с бубнами. Хотя возможно мой метод не самый "кошерный", но прекрасно работает для нужного поля, независимо от того создано ли оно в webform, своим модулем или при создании типа материала.
В своей теме, в папку js (надо создать если еще нет) кладу файл jquery.maskedinput.min.js (ну или jquery.maskedinput.js если что дописать надо). Сам плагин лежит вот тут, нужный файл в папке dist.
Туда же (в js) кладу свой js файл типа

(function($) {
    Drupal.behaviors.myBehavior = {
        attach: function (context) {
            $(".phone").mask("+7(999) 999 99 99");
        }
    };
})(jQuery);

Подключаю все это в .info файле темы. И все. Теперь любое поле с классом phone будут выглядеть +7 (_ _ _) _ _ _ _ _ _ _ .
Ну можно для красоты еще placeholder добавить (в webform это будет называться "заполнитель").