0

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; ?>    
4

1 に答える 1

0

これをビューに追加しました

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

とで

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

そして問題は解決しました。これが正しい方法かどうかはわかりませんが、現在のシナリオでは役に立ちました。

于 2012-06-18T05:52:41.757 に答える