先在Views页面的表单开启这个功能:
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'signup-form',
'enableAjaxValidation' => true,//开启Ajax验证
'enableClientValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
),
)); ?>
...
<?php $this->endWidget(); ?>
然后再对应的Controller的action中加入代码:
//注册
public function actionSignup()
{
$model = new LoginForm('signup');
// 开启Ajax验证
if(isset($_POST['ajax']) && $_POST['ajax']==='signup-form')
{
echo CActiveForm::validate($model);
Yii::app()->end();
}
if (isset($_POST['LoginForm'])) {
$model->attributes=$_POST['LoginForm'];
if($model->validate()){
if($model->signup()){
$this->redirect(array('login'));
}
}
}
$this->render('signup', array('model'=>$model));
}
需要注意的是:表单的ID 名字 要跟控制器中的一样。(此处我的是signup-form
) ==============补充 2014年01月12日============= 如果想让 ajax 的字段唯一,只需要在 Model 文件的 Rules 方法里面加上下面这行就可以了:
array('name', 'unique'),
- 原文作者: forecho
- 原文链接: https://blog.forecho.com/yii-ajax-biao-dan-yan-zheng.html
- 版权声明:本作品采用 署名-非商业性使用 4.0 国际 (CC BY-NC 4.0)进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。