Привет!
Подскажите, как правильно добавить 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
Как победить этот случай?