zoukankan      html  css  js  c++  java
  • Yii CActiveForm 客户端验证(enableClientValidation)和自定义验证

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

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

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

    [php] view plain copy
     
    在CODE上查看代码片派生到我的代码片
    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
     
    在CODE上查看代码片派生到我的代码片
    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方法中添加。

  • 相关阅读:
    linux下文本处理
    JSON对象的序列化和反序列化
    大整数相加的js实现
    前端日志格式化
    对象deepcopy
    基于vue实现的小程序管理后台图文编辑器
    原型和原型链
    函数声明、函数表达式及函数立即执行
    网址
    判断日期是否相等
  • 原文地址:https://www.cnblogs.com/xieqian111/p/5416255.html
Copyright © 2011-2022 走看看