客户端验证如何触发?如此代码:
<? $form = $this->beginWidget('CActiveForm',array(
'id' => 'user-register',
'enableAjaxValidation'=>true,
'enableClientValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
'afterValidate' => "js: function(form, data, hasError) {
console.log(data);
return false;
}"
)));
?>
<?= $form->errorSummary($user); ?>
<?= $form->textField($user, 'email'); ?>
<?= $form->error($user,'email'); ?>
<? $this->endWidget() ?>
工作正常(在errorSummary()和error()方法中显示用户模型中描述的电子邮件字段的错误,但后来我删除
<?= $form->error($user,'email'); ?>
客户端验证未触发,表单已提交
ajax验证的行为相同
答案 0 :(得分:0)
如果我理解你,你必须加入控制器:
$this->performAjaxValidation($model);
就在之前:
if (isset($_POST['User']))
然后,找到函数 performAjaxValidation (在同一控制器中)并将默认字符串更改为 user-register ,如下所示:
protected function performAjaxValidation($model)
{
if (isset($_POST['ajax']) && $_POST['ajax'] === 'user-register')
{
echo CActiveForm::validate($model);
Yii::app()->end();
}
}