Yii CActiveForm 客户端验证(enableClientValidation)和自定义验证
2015-06-04 15:30
696 查看
使用Yii的CActiveForm默认使用服务器端模型(model)的rules规则验证数据。
但这会导致无谓的请求提交,比较好的方式是为了用户体验在客户端也验证,而为了安全性,在服务器端和数据库也做验证和限制。
要启用CActiveForm的客户端验证,可以使用enableClientValidation参数:
如果界面中使用了自定义的组件,不能直接使用rules规则,那么可以在afterValidate中添加额外的验证代码,如上的exClientValidate(JS函数)。
另外在服务端数据验证时也可以自定义复杂的验证规则:
by iefreer
但这会导致无谓的请求提交,比较好的方式是为了用户体验在客户端也验证,而为了安全性,在服务器端和数据库也做验证和限制。
要启用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
相关文章推荐
- Reporting Service 配置SMTP和设置订阅出现的异常
- 分享一段php获取任意时间的前一天代码
- PHP
- thinkphp excel 数据导出excel(自用备份)
- 使用SFTP将windows文件传至liunx
- Thinkphp交友手机首页简明前台、后台
- FTP协议及数据包浅析
- Ubuntu 14.04系统tftp服务器的搭建
- laravel validate学习笔记
- [Laravel 5 教程学习笔记] 一、Windows下安装Laravel 5
- php 函数
- iis7+php5.4的安装配置
- 在win7下,easyphp安装过程中MSVCR110.DLL没有被指定在WINDOWS上运行,或者它包含错误
- rtpdataheader.h
- PHP数组操作汇总 php数组的使用技巧
- php根据url生成网页快照(CutyCapt.exe)
- 说说sftp的chroot
- LayoutParams的用法
- PHP函数的实现原理及性能分析
- php单例模式