码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2016-04-21 13:40:17      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:

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

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

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

 

[php] view plain copy
 
技术分享技术分享
  1. <?php $form=$this->beginWidget(‘CActiveForm‘, array(  
  2.     ‘enableClientValidation‘=>true,   
  3.     ‘clientOptions‘=>array(  
  4.             ‘validateOnSubmit‘=>true,     //提交时的验证  
  5.             ‘validateOnChange‘=>true,     //输入框值改变时的验证  
  6.             ‘validateOnType‘=>false,      //键入时验证  
  7.             ‘afterValidate‘ => ‘js:function(form, data, hasError){return exClientValidate();}‘              
  8.         ),          
  9.     ‘htmlOptions‘=>array(‘enctype‘=>‘multipart/form-data‘),        
  10. )); ?>  


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

 

 

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

 

[php] view plain copy
 
技术分享技术分享
  1. public function rules() {  
  2. <span style="white-space:pre">  </span>......  
  3. <span style="white-space:pre">  </span>array(‘description‘,‘exServerValidate‘,‘on‘=>‘create,update‘),  
  4. }  

在exServerValidate方法中添加。

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

标签:

原文地址:http://www.cnblogs.com/xieqian111/p/5416255.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!