Привет!
Подскажите, как правильно добавить Masked Input  в своей форме к полю type=tel?
Пробовал так, не работает.
<?php
    $form['contacts']['field_contact_person_phone'] = [
      '#type' => 'tel',
      '#required' => true,
      '#title' => 'Ваш телефон',
      '#default_value' => '',
      '#mask' => '+7(999)999-9999',
      '#placeholder' => '+7(___)___-__-__',
      '#size' => 30,
      '#attached' => array(
        'library' => array(
          'masked_input/drupal.masked_input',
        ),
      ),
    ];
?>И второй вопрос. На локальной машине в поле ноды (это другое поле, не то, что в первом вопросе) вываливается вот такая ошибка.
InvalidArgumentException: The URI 'tel:%2B7%28908%29729-76-03' is invalid. You must use a valid URI scheme. Use base: for a path, e.g., to a Drupal file that needs the base path. Do not use this for internal paths controlled by Drupal. in Drupal\Core\Utility\UnroutedUrlAssembler->assemble() (line 64 of core/lib/Drupal/Core/Utility/UnroutedUrlAssembler.php).
У коллег вроде не всплывало, но что-то ссыкатно переносить на сервер.
Заранее спасибо за ответы!


Комментарии
Было пару модулей, которые добавляли поле телефон сразу со всеми фентифлюшками. Может лучше ими воспользоваться?
В восьмерке в ядре такое поле есть. Им и пользуюсь.
Как ответили тут https://t.me/drupal_beginner
Решил свой костыль придумать, чтобы к кастомному полю маску прикрутить.
Добавил класс masked к полю
<?php $form['contacts']['field_contact_person_phone'] = ['#type' => 'tel',
*
'#attributes' => [
'class' => [
'masked'
]
],
'#attached' => [
'library' => [
'masked_input/drupal.masked_input',
],
],
];?>
и решил прикрутить руками:
Drupal.behaviors.mask = {
attach: function(context, settings) {
$('.form-tel.masked').mask('+7(999)999-99-99')
}
}
})(jQuery);
Но так с наскоку не получилось, он ругается что
вот ссылка на masked_input.js
Как победить этот случай?