YII2模糊Ajax验证不起作用

时间:2015-01-14 11:17:24

标签: php ajax validation yii2 yii2-advanced-app

我试图验证我的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(); ?>

有谁能让我知道我在做什么错?

2 个答案:

答案 0 :(得分:0)

将它包含在ActiveForm config。

中是不够的

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

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

了解如何在official documentation中完成。

答案 1 :(得分:0)

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

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