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

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

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

  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函数)。

另外在服务端数据验证时也可以自定义复杂的验证规则:

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

最新文章

  1. tomcat 7+ 启动慢 熵池阻塞变慢详解
  2. OpenGL的学习资源
  3. Linux GCC常用命令
  4. golang 前置补0
  5. rabbitmq消息队列——&quot;topic型交换器&quot;
  6. android控件库(1)-带删除功能的EditText
  7. 利用MsChart控件绘制多曲线图表 z
  8. (转).net开发者对android开发一周的学习体会
  9. Libreoffice汉化
  10. WIZnet即将推出高性能网络芯片W5500
  11. jquery新窗口打开链接
  12. 理解Java String和String Pool
  13. 制作 OpenStack Windows 镜像 - 每天5分钟玩转 OpenStack(152)
  14. php+ajax+jq
  15. C#设计模式(2)-简单工厂模式
  16. GitHub上传文件不能超过100M的解决办法
  17. 使用 js 设置组合快捷键,支持多个组合键定义,还支持 React
  18. hdu 5008 查找字典序第k小的子串
  19. JAVA类的继承之多态特性
  20. apache-tomcat 部分中文.html .jsp 连接 404问题

热门文章

  1. CF-1013 (2019/02/09 补)
  2. 02Qt信号与槽(1)
  3. mac Parallels Desttop 13 win7/win8 无法连接网络
  4. 20181207(sys,shelve,logging)
  5. 大小端测试C实现
  6. CodeForces Round #320 Div2
  7. Python之PyFrameObject动态执行环境
  8. Leetcode207---&gt;课程表(逆拓扑排序)
  9. Python-函数参数的传递
  10. Leetcode 421.数组中两数的最大异或值