Yii CActiveForm 客户端验证(enableClientValidation)和自定义验证

使用Yii的CActiveForm默认使用服务器端模型(model)的rules规则验证数据。

但这会导致无谓的请求提交,比较好的方式是为了用户体验在客户端也验证,而为了安全性,在服务器端和数据库也做验证和限制。

要启用CActiveForm的客户端验证,可以使用enableClientValidation参数:

    <?php $form=$this->beginWidget('CActiveForm', array(
        'enableClientValidation'=>true, 
        'clientOptions'=>array(
                'validateOnSubmit'=>true,     //提交时的验证
                'validateOnChange'=>true,     //输入框值改变时的验证
                'validateOnType'=>false,      //键入时验证
                'afterValidate' => 'js:function(form, data, hasError){return exClientValidate();}'            
            ),        
        'htmlOptions'=>array('enctype'=>'multipart/form-data'),      
    )); ?>

如果界面中使用了自定义的组件,不能直接使用rules规则,那么可以在afterValidate中添加额外的验证代码,如上的exClientValidate(JS函数)。


另外在服务端数据验证时也可以自定义复杂的验证规则:

public function rules() {
	......
	array('description','exServerValidate','on'=>'create,update'),
}
在exServerValidate方法中添加。


by iefreer

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值