MaskedInput required - обязательность заполнения поля в MaskedInput

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
oughtem2
Сообщения: 34
Зарегистрирован: 2019.10.26, 20:50

MaskedInput required - обязательность заполнения поля в MaskedInput

Сообщение oughtem2 »

Проект на yii2. В форме, которая уже написана на html без использования ActiveForm и которую мне не хочется кардинально править мне надо вставить обязательный для заполнения инпут с телефоном юзера и маской в нём. Использую MaskedInput в формате

Код: Выделить всё

echo MaskedInput::widget([
    'id' => 'client_phone',
    'name' => 'client_phone',
    'mask' => '+380(99)-999-9999',
    'options' => [
        'placeholder' => '+380(__)-___-____',
        'class' => 'cab__set-input phone-mask',
        'type' => 'tel',
        'style' => ['width' => '180px'],
        'required' => true,
        'readonly' => false,
        'title' => 'Формат: +380(93)-987-6512',
    ],
    'clientOptions'=>[
        'clearIncomplete'=>true,
    ]
]);
Так как изначально ActiveForm не использовался, вставляют инпут таком формате, где не указывается модель и я не могу использовать валидатор из модели. В демо-примерах я вижу, что можно использовать валидаторы типа

Код: Выделить всё

'definitions' => ['j' => [
    'validator' => '[0-9\(\)\.\+/ ]',
    'cardinality' => 4,
    'prevalidator' =>  [
        ['validator' => '[12]', 'cardinality' => 1],
        ['validator' => '(19|20)', 'cardinality' => 2],
        ['validator' => '(19|20)\\d', 'cardinality' => 3],
    ]
]]
но сделать валидацию на обязательность заполнения этого поля у меня не получается. 'required' => true не работает. Поэтому такие вопросы:
  • как сделать поле обязательным для заполнения и в случае не заполнения показать сообщение "Укажите телефон"
  • как узнать список всех возможных lientOptions' и 'validator'если по ним нет документации?
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

Re: MaskedInput required - обязательность заполнения поля в MaskedInput

Сообщение yiiliveext »

oughtem2 писал(а): 2019.11.09, 14:11
  • как сделать поле обязательным для заполнения и в случае не заполнения показать сообщение "Укажите телефон"
  • как узнать список всех возможных lientOptions' и 'validator'если по ним нет документации?
Проверяйте в beforeSubmit
плюс на лету

Код: Выделить всё

 'clientOptions'=>[
         'clearIncomplete'=>true,
         'onincomplete' => 'function(){ alert("inputmask incomplete"); }' //вместо алерт обрабатываете нужным способом
 ]
Опции здесь https://github.com/RobinHerbots/Inputmask
Ответить