Yii CActiveForm 客户端验证(enableClientValidation)和自定义验证
2024-09-06 18:46:00
使用Yii的CActiveForm默认使用服务器端模型(model)的rules规则验证数据。
但这会导致无谓的请求提交,比较好的方式是为了用户体验在客户端也验证,而为了安全性,在服务器端和数据库也做验证和限制。
要启用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() {
- <span style="white-space:pre"> </span>......
- <span style="white-space:pre"> </span>array('description','exServerValidate','on'=>'create,update'),
- }
在exServerValidate方法中添加。
最新文章
- tomcat 7+ 启动慢 熵池阻塞变慢详解
- OpenGL的学习资源
- Linux GCC常用命令
- golang 前置补0
- rabbitmq消息队列——";topic型交换器";
- android控件库(1)-带删除功能的EditText
- 利用MsChart控件绘制多曲线图表 z
- (转).net开发者对android开发一周的学习体会
- Libreoffice汉化
- WIZnet即将推出高性能网络芯片W5500
- jquery新窗口打开链接
- 理解Java String和String Pool
- 制作 OpenStack Windows 镜像 - 每天5分钟玩转 OpenStack(152)
- php+ajax+jq
- C#设计模式(2)-简单工厂模式
- GitHub上传文件不能超过100M的解决办法
- 使用 js 设置组合快捷键,支持多个组合键定义,还支持 React
- hdu 5008 查找字典序第k小的子串
- JAVA类的继承之多态特性
- apache-tomcat 部分中文.html .jsp 连接 404问题