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

  • 相关阅读:
    Ant: Class not found: javac1.8
    (转)ant 使用指南
    炼数成金(dataguru)IT技能修炼
    [原创]记我的6年测试经历
    CentOS6.5 安装并配置vsftpd
    炫龙炎魔T1笔记本 Win7 系统安装
    Oracl数据库+PL/SQL安装与配置
    C# 面试题
    Linux安装Python3后,如何使用pip命令
    CentOS7 Python2 和Python3 共存(Python3安装)【转】
  • 原文地址:https://www.cnblogs.com/xieqian111/p/5416255.html
Copyright © 2011-2022 走看看