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方法中添加。

  • 相关阅读:
    中国剩余定理
    Codeforces 240 F. TorCoder
    ZOJ 1202 Divide and Count
    洛谷 3380 【模板】二逼平衡树(树状数组套权值线段树)
    bzoj 3196/ Tyvj 1730 二逼平衡树 (线段树套平衡树)
    uva 10791
    uva 699 The Falling Leaves
    uva 839 Not so Mobile
    2017 济南综合班 Day 5
    2017 济南综合班 Day 4
  • 原文地址:https://www.cnblogs.com/xieqian111/p/5416255.html
Copyright © 2011-2022 走看看