Необходимо добавить маску-валидации телефона в поле, добавляю в обычном дизайне Yii2 - все работает: PHP: <?= $form->field($model, 'subject')->widget(\yii\widgets\MaskedInput::className(), [ 'mask' => '999-999-9999', ]) ?> Делаю тоже самое на рабочем дизайне - не работает: PHP: <?= $form->field($model, 'phone')->widget(\yii\widgets\MaskedInput::className(), [ 'mask' => '999-999-9999', ]) ?> При этом никаких ошибок в консоли нет. Сверял подгрузку js-файлов, все также подгружается на рабочем дизайне: /assets/26c728d5/jquery.js (+) /assets/4ba5c71d/yii.js (+) /assets/4ba5c71d/yii.validation.js (+) /assets/ccdf817b/jquery.inputmask.bundle.js (+) /assets/4ba5c71d/yii.activeForm.js (+) /assets/2ab111e0/js/bootstrap.js (+) В чем может быть причина?
Частично нашел причину - валидация срабатывает только на первой форме на странице. На всех остальных, с такой же маской - не работает. Странно...
Рабочий дизайн тоже обычным ActiveForm генерится? AJAX-а там часом никакого нет? --- Добавлено --- Вызовы endPage, endBody стоят где нужно?
Проблема была в другом - каждое поле с такой валидацией должно иметь свой уникальный id: PHP: <?= $form->field($model, 'phone')->widget(MaskedInput::className(), [ 'mask' => '+7 (999) 999-99-99', 'options' => [ 'class' => 'form-control', 'id' => 'phone1', 'placeholder' => ('Контактный телефон') ], 'clientOptions' => [ 'clearIncomplete' => true ] ])->label(false) ?> PHP: <?= $form->field($model, 'phone')->widget(MaskedInput::className(), [ 'mask' => '+7 (999) 999-99-99', 'options' => [ 'class' => 'form-control', 'id' => 'phone2', 'placeholder' => ('Контактный телефон') ], 'clientOptions' => [ 'clearIncomplete' => true ] ])->label(false) ?> PHP: <?= $form->field($model, 'phone')->widget(MaskedInput::className(), [ 'mask' => '+7 (999) 999-99-99', 'options' => [ 'class' => 'form-control', 'id' => 'phone3', 'placeholder' => ('Контактный телефон') ], 'clientOptions' => [ 'clearIncomplete' => true ] ])->label(false) ?> и так далее
Зачем же на id завязывать? Обойдитесь указанием общего для таких полей класса. Пример. Если, конечно, id не нужен для других целей... Сам-то по себе id и так должен быть уникален на странице.
Все формы работают с одной таблицей, зачем мне делать разные модели? Класс у полей и так один и тот же, без уникального id маска работает только на первом поле.
Это же Yii, он сам вставляет JS для инициализации MaskedInput, и именно по ID. Поэтому я не всегда пользуюсь виджетами, иногда предпочитаю JS-ку сам написать, как мне удобнее