[РЕШЕНО] Нормальная валидация поля Телефон

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

Аватар пользователя whiesam whiesam 13 февраля 2014 в 17:30

Обычно нужна для WebForm.
Есть скрипт или что ещё с нормальной валидацией "Онлайн, на лету" номеров телефонов? Желательно с шаблоном _ (___) __ __ __, ну чтобы "для дебилов"!

Комментарии

Аватар пользователя alextdk alextdk 18 февраля 2014 в 23:27

Целый модуль! Боже мой! Какой кошмар!
Ну а если серьезно, чем приведенная вами ссылка отличается от masked_input? Тем что второй вариант приведет к геморою:

  • По всей видимости подключать его вы собираетесь через темплейт (раз вам модуль религия запрещает)? тоесть в админской теме его априори не будет.
  • Конфигурации придется определять для нужных полей ручками, тоесть писать свои пресловутые бехавы.
  • Ну и на последок, а он точно работает/совместим с друпловским jquery???

И после всего этого оно вам надо? Ведь не просто так ребята стараются, пишут модули, вылизывают код и реагируют на ишьюсы ...

Аватар пользователя whiesam whiesam 16 февраля 2014 в 23:55

Там придется поднапрячся чтобы разобраться. К примеру надо написать маску для телефона, но в скобках же по разному бывает цифр (код региона или сотовый). Там это всё есть но вот регулярки...

Аватар пользователя whiesam whiesam 19 февраля 2014 в 10:38

Есть возможность сделать нормальную валидацию на лету? То есть если поле некорректно заполнено, то форма не отправиться и выйдет мессага возле поля, мол заполните.

Если нет готового решения, хотя бы примерный код для отслеживания валидации на jquery. Я с бутсрапом завязал бы всё это дело.

Аватар пользователя whiesam whiesam 11 марта 2014 в 19:02

"grob.82" wrote:
нихера се целый модуль на такую хрень тянуть!?!?
вот нормальный вариант https://github.com/RobinHerbots/jquery.inputmask[/quote]
Ну решил я подключить данный js для эксперимента.
Тут начались адовые пляски с...
"lamer" wrote:
Конфигурации придется определять для нужных полей ручками, тоесть писать свои пресловутые бехавы.

Бехавы..аааа.аааа.а..арррррррррррррр...
Никогда больше с ними не свяжусь.

Вот рабочий бехейв для подобных ситуаций+отключение кнопки сабмита формы, если недозаполнили маску (плюс данного решения):

(function ($) {
  Drupal.behaviors.user_create = {
    attach: function (context, settings) {
        $('form#web-create-entityform-edit-form').find('button[type="submit"]').attr('disabled','disabled');
      $('input[name*="field_mobile_tel"]', context).inputmask("8 (999) 999-9999",{
            "oncomplete": function(){
            $('button[type="submit"]').removeAttr('disabled');},
            "onincomplete": function(){
            $('form#web-create-entityform-edit-form').find('button[type="submit"]').attr('disabled','disabled');}
            });
      });
    }
  };
})(jQuery);

Заметьте, что как бы тоже намекает на модуль, хотя можно любой прописать.
Короче за это время что я пытался понять как эта х*** работает, я бы 10 модулей написал чтобы подцепить эту библиотеку....

Плюсы:
Кастомные маски.
Валидация на лету (то что я хотел), то есть выполнение функций (если незаполнено, если заполнено и т.д.)

Минусы:
Много писанины.
Бехавы.

ИТОГ:
Не хотите парится с мракобесием, тогда ставьте https://drupal.org/project/masked_input
Необходимо более кастомное решение, то ставим эту библиотеку.

Аватар пользователя alextdk alextdk 9 марта 2014 в 11:45

А ещё можно написать ишью сюда https://drupal.org/project/issues/masked_input, описать там свои проблемы, предложить решение, а заодно и предложить патчик, и в полне возможно в скором времени модуль masked_input станет лучше чем сейчас! Друпал делаеться с помощью комьюнити, весь код который есть на сайте drupal.org, написан такимиже программистами как и вы!