我的YII项目中有验证码问题。我在弹出窗口中包含了验证码。它显示正确,但验证存在问题。验证有时是正确的,如果我们在第一次尝试中输入了正确的单词,验证表明它是错误的,在生成另一个代码后验证成功。为什么呢?
在模型中 - >规则:
array('verifyCode', 'captcha', 'allowEmpty'=>!CCaptcha::checkRequirements(),'on'=> 'signup')
在控制器中 - >通过renderPartial调用注册表单
$this->renderPartial('signUp',array('model'=>$model),false,true);
在视图中:
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'sign-up-form',
'enableAjaxValidation'=>true,
'enableClientValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
),
)); ?>
-----------------------
-----------------------
<?php if(CCaptcha::checkRequirements()): ?>
<?php echo $form->labelEx($model, 'verifyCode', array('for'=>'User_security_code')); ?>
<?php $this->widget('CCaptcha'); ?>
<?php echo $form->textField($model,'verifyCode',array('class'=>'txt-style width-289')); ?>
Please enter the letters as they are shown in the image above. Letters are not case-sensitive.
<?php echo $form->error($model,'verifyCode',array('class'=>'error_msg')); ?>
<?php endif; ?>
答案 0 :(得分:0)
我在视图中添加了这个
<?php
Yii::app()->clientScript->registerScript(
'initCaptcha',
'$("#yw0_button").trigger("click");',
CClientScript::POS_READY);
?>
并在
`CCaptchaAction.php` updated `$testLimit = 0;` //for unlimted test`
问题解决了。我不确定这是正确的方法,但对于我目前的情况,它有所帮助。