Есть такая форма:
Код: Выделить всё
$form = ActiveForm::begin([
'id'=>$model->formName(),
'validationUrl'=>Url::to(['/orders/default/validation']),
'enableAjaxValidation'=>true,
'enableClientValidation'=>true,
'validateOnBlur'=>true,
'validateOnChange'=>true,
'fieldConfig' => [
'template' => '<div class="c-order-checkout__group">{label}{input}{error} </div>',
'inputOptions'=>[
'class'=>'form-control h-form__input h-input-response'
],
'options' => [
'tag' => false,
],
]
]);
ValidateAction:
Код: Выделить всё
class ValidationAction extends Action
{
public function run() // $id
{
$model = new $this->modelClass;
if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())) {
Yii::$app->response->format = Response::FORMAT_JSON;
return ActiveForm::validate($model);
}
}
}
При нажатии на кнопку Submit формы, в Firebug XHR Хрома содержится ответ в виде JSON:
Код: Выделить всё
{"orders-user_name":["Необходимо заполнить «user-name»."],"orders-user_phone":["Необходимо заполнить «Телефон»."],"orders-user_email":["Необходимо заполнить «e-mail»."],"orders-customer_id":["Необходимо заполнить «Пользовать»."]}
Нарыл такой скрипт Jquery:
Код: Выделить всё
$.each(data, function(key, val) {
$('#'+key).after('<div class='help-block'>'+val+'</div>');
$('#'+key).closest('.form-group').addClass('has-error');
});