Нашел еще вот такой пример в доках:
<?= Html::activeLabel($model, 'password') ?>
<?= Html::activePasswordInput($model, 'password') ?>
<?= Html::error($model, 'password') ?>
or
<?= Html::activeLabel($model, 'username', ['label' => 'name']) ?>
<?= Html::activeTextInput($model, 'username') ?>
<div class="hint-block">Please enter your name</div>
<?= Html::error($model, 'username') ?>
Сгенерировал свою форму:
<?php $form = ActiveForm::begin(['id' => 'contact_form']); ?>
<div class="clearfix">
<div class="form-col form-marg small fl-left">
<?= Html::activeLabel($model, 'name') ?>
<div class="field"><?= Html::activeTextInput($model, 'name', ['class'=>'form-item req']) ?></div>
<?= Html::error($model, 'name') ?>
<div class="hint-block"></div>
</div>
<div class="form-col form-marg small fl-left">
<?= Html::activeLabel($model, 'email') ?>
<div class="field"><?= Html::activeTextInput($model, 'email', ['class'=>'form-item req']) ?><div class="hint-block"></div></div>
<?= Html::error($model, 'email') ?>
<div class="hint-block"></div>
</div>
</div>
<div class="form-col">
<?= Html::activeLabel($model, 'body') ?>
<?= Html::activeTextarea($model, 'body', ['class'=>'form-item req']) ?>
<?= Html::error($model, 'body') ?>
<div class="hint-block"></div>
</div>
<div class="clearfix">
<div class="form-col form-marg small fl-left">
<?= $form->field($model, 'verifyCode')->widget(Captcha::className(), [
'captchaAction' => '/site/default/captcha',
'options' => ['class' => 'form-item req'],
'template' => '<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-9"><div class="field">{input}</div></div></div>',
]) ?>
</div>
</div>
<div class="form-btn">
<div class="field"><?= Html::submitButton(Yii::t('app', 'Отправить'), ['class' => 'btn btn-primary']) ?></div>
</div>
<?php ActiveForm::end(); ?>
Все работает, кроме вот это-го блока. Тоесть yii2 js не обрабатывает вот этот блок и не показывает ошибки до отправления формы.