在controller里边定义
public function actions(){
return array('captcha'=>array(
'class'=>'CCaptchaAction',
'backColor'=>0xFFFFFF,
'minLength'=>4,
'maxLength'=>4,
//'fixedVerifyCode' => substr(md5(time()),0,4),//这个貌似网上说的是可以页面刷新验证码,但是添加后,虽然可以刷新,但是提交后,校验不正确,网上一堆解决方法还是不行,所以不使用该方法
));
}
在model里边
定义 public $verifyCode;
public function rules()
{
return array(
array('verifyCode', 'captcha', 'allowEmpty'=>true),
);
}
在view里边定义
$this->widget('CCaptcha',
array(
'captchaAction' => 'captcha',
'showRefreshButton' => false,
'clickableImage' => true, //设置可以点击图片能ajax刷新验证码
'buttonLabel'=>'刷新验证码',
'imageOptions' => array('id'=>'myRegisterCaptcha','align'=>'top', 'title'=>'换一张图片','style'=>'cursor:pointer'),
)
);
?>
获取验证码 $this->createAction('captcha')->getVerifyCode();
解决验证码刷新页面不更新的问题 《
给验证码绑定click 》
生成验证码的id为myRegisterCaptcha
<script>
$(document).ready(function(){
var img = new Image;
img.οnlοad=function(){
$('#myRegisterCaptcha').trigger('click');
}
img.src = $('#myRegisterCaptcha').attr('src');
});
</script>