YII2 在模糊 Ajax 验证不起作用


YII2 on blur Ajax validation not working

我正在尝试验证我的YII2更改密码表单。但是我在模糊验证上停留在 YII2 上。

    <?php
        use yii'bootstrap'ActiveForm;
        use yii'helpers'Html;
    ?>
    <?php
        $form = ActiveForm::begin([
                    'id' => 'change-password',
                    'action' => $action,
                    'enableAjaxValidation' => true
        ]);
    ?>
<?php echo $form->field($model, 'old_password')->label(false)->passwordInput(['placeholder' => 'Your Old Password', 'class' => 'form-control']); ?>

<?php echo $form->field($model, 'new_password')->label(false)->passwordInput(['placeholder' => 'Your New Password', 'class' => 'form-control']); ?>

<?php echo $form->field($model, 'confirm_password')->label(false)->passwordInput(['placeholder' => 'Confirm Your New Password', 'class' => 'form-control']); ?>

<?php echo Html::submitButton('Submit', array('class' => 'btn btn-primary')); ?>
    <?php ActiveForm::end(); ?>

谁能让我知道我做错了什么?

仅仅将其包含在ActiveForm配置中是不够的。

可以发送请求,但表单将保持不变。

您还应该准备您的控制器(在 CRUD 生成的控制器中,它们是createupdate,在您的情况下,它可能只是一个 - 负责更新密码)以在 AJAX 请求的情况下返回正确的 JSON 数据。

在官方文档中查看它是如何完成的。

模型类 场景函数必须具有默认选项:

public function scenarios()
{
    return [
        'default' => ['old_password', 'new_password', 'confirm_password']
    ];
}