Php yii2 ajax验证不会显示错误

Php yii2 ajax验证不会显示错误,php,yii2,yii2-validation,Php,Yii2,Yii2 Validation,我有一个小部件中的ActiveForm,希望验证它的字段(获取 字段下的错误),而不重新加载页面。但是最好的 结果,我得到的是验证错误的json 行动。“验证…”似乎根本不起作用,我也尝试了 捕获“beforeValidate”回调,但它也不起作用。我试了很多 几乎决定了这是不可能的。可能有人看见了 我的主要错误,如果是,请帮助我 窗体视图 <div class="feedback-form__wrap"> &l

我有一个小部件中的ActiveForm,希望验证它的字段(获取 字段下的错误),而不重新加载页面。但是最好的 结果,我得到的是验证错误的json 行动。“验证…”似乎根本不起作用,我也尝试了 捕获“beforeValidate”回调,但它也不起作用。我试了很多 几乎决定了这是不可能的。可能有人看见了 我的主要错误,如果是,请帮助我


窗体视图
 <div class="feedback-form__wrap">
                        <?php $form = ActiveForm::begin([
                            'class' => 'feedback-form__form',
                            'id' => 'feedback-form',
                            'enableAjaxValidation' => true,
                            'enableClientValidation' => false,
                            'ajaxDataType' => 'json',
                            'validateOnChange' => true,
                            'validateOnType' => true,
                            'validateOnBlur' => true,
                            'validationUrl' => '/feedback/validate',
                        ]) ?>
                        <div class="custom-input-wrapper">
                            <?= Html::activeTextInput($feedbackForm, 'name', [
                                'class' => 'custom-input',
                                'required' => 'required',
                                'placeholder' => 'Имя',
                                'enableAjaxValidation' => true,
                            ]); ?>
                        </div>
                    ...   
我的表单类(规则和方法)


首先,您应该将
Html::activeTextInput
更改为
$form->field($feedbackForm,'name')->textInput
模式

由于
$form->field
生成错误块、验证错误等

替换

<?=
$form->field($feedbackForm, 'name')->textInput([
    'class' => 'custom-input',
    'required' => 'required',
    'placeholder' => 'Имя',
]);
?>

而不是

<?=
Html::activeTextInput($feedbackForm, 'name', [
    'class' => 'custom-input',
    'required' => 'required',
    'placeholder' => 'Имя',
    'enableAjaxValidation' => true,
]);
?>


告诉我您的问题是否仍然存在。

首先,您应该将
Html::activeTextInput
更改为
$form->field($feedbackForm,'name')->textInput
模式

由于
$form->field
生成错误块、验证错误等

替换

<?=
$form->field($feedbackForm, 'name')->textInput([
    'class' => 'custom-input',
    'required' => 'required',
    'placeholder' => 'Имя',
]);
?>

而不是

<?=
Html::activeTextInput($feedbackForm, 'name', [
    'class' => 'custom-input',
    'required' => 'required',
    'placeholder' => 'Имя',
    'enableAjaxValidation' => true,
]);
?>

告诉我你的问题是否仍然存在