Yii2客户端验证

时间:2017-08-28 12:25:15

标签: javascript java validation yii2 conditional

在Yii2中,我在model.php中进行了条件验证。 当我在文本字段中写入未通过验证的内容时,在离开字段后它不会显示错误消息。 只有在 klick 创建后才会出现错误消息。 在字段中写入内容后,我有什么消息可以显示。

response

3 个答案:

答案 0 :(得分:0)

您应该在ActiveForm中设置enableAjaxValidation

例如:

$form = ActiveForm::begin([
    'id' => 'contact-form',
    'enableAjaxValidation' => true,
]);

答案 1 :(得分:0)

也许我已经描述了问题不太好所以我再试一次。 问题是条件验证仅在保存/创建点击之后才有效。

答案 2 :(得分:0)

在你的模特中:

 public function rules()
 {
    return [
        ['state', 'required', 'targetClass' => '\backend\models\State', 
        'message' => 'Your message here'],
    ];
 }

我不确定您的模型是否在后端,因此您可以根据需要更正。

在Controller中你必须创建这样的函数:

public function actionValidation(){
    $model = new State();
    if(Yii::$app->request->isAjax && $model->load(Yii::$app->
    request->post())){
        Yii::$app->response->format = 'json';
        return ActiveForm::validate($model);
    }     
}

还有一步,在你的表格开头:

<?php $form = ActiveForm::begin(
                [
                    'enableAjaxValidation' => true,
                    'validationUrl' => Url::toRoute('state/validation')
                ]
        ); ?>

注意,在上面的代码中我写了'state / validation','state'是控制器的名称,你可以在其中放置验证操作。