在Yii2中,model.php中有一个条件验证。当我在textfield中写入一些没有通过验证的内容时,它在离开字段后不会出现错误消息。只有在创建一个klick之后,才会出现错误消息。在字段中写了一些东西之后,我需要做什么才能让消息出现。
<?php
['state', 'required', 'when' => function ($model) {
return $model->country == 'USA';
}, 'whenClient' => "function (attribute, value) {
return $('#country').val() == 'USA';
}"]发布于 2017-08-29 10:43:39
在你的模型中:
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‘是您放置验证操作的控制器的名称。
发布于 2017-08-28 12:58:02
您应该在enableAjaxValidation中设置ActiveForm
例如:
$form = ActiveForm::begin([
'id' => 'contact-form',
'enableAjaxValidation' => true,
]);发布于 2017-08-29 08:08:47
也许我把这个问题描述得不太好,所以我再试一次。问题是条件验证只在单击“保存/创建”之后才能工作。
https://stackoverflow.com/questions/45918941
复制相似问题