Yii popup中的奇怪验证码

时间:2012-06-16 09:47:14

标签: php jquery yii

我的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; ?>    

1 个答案:

答案 0 :(得分:0)

我在视图中添加了这个

<?php
Yii::app()->clientScript->registerScript(
        'initCaptcha',
        '$("#yw0_button").trigger("click");',
        CClientScript::POS_READY);
?>

并在

`CCaptchaAction.php` updated `$testLimit = 0;` //for unlimted test`

问题解决了。我不确定这是正确的方法,但对于我目前的情况,它有所帮助。