我有个登陆窗口,
<div class="wide form">
<?php $form=$this->beginWidget('CActiveForm', array('id'=>'login-form','enableAjaxValidation'=>true)); ?>
<?php echo $form->errorSummary($model); ?>
<?php echo CHtml::hiddenField('referUrl',Yii::app()->getRequest()->getParam('referUrl')); ?>
<div class="row">
<?php echo $form->labelEx($model,'username'); ?>
<?php echo $form->textField($model,'username') ?>
<?php echo $form->error($model,'username') ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'password'); ?>
<?php echo $form->passwordField($model,'password') ?>
<?php echo $form->error($model,'password') ?>
</div>
<?php if(extension_loaded('gd')): ?>
<div class="row">
<?php echo $form->labelEx($model,'verifyCode'); ?>
<?php echo $form->textField($model,'verifyCode',array('style'=>'ime-mode:disabled')); ?>
<?php //echo $form->error($model,'verifyCode') ?>
<div class="prefix"><?php $this->widget('CCaptcha'); ?></div>
<p class="hint">请填写正确的验证码,不区分大小写</p>
</div>
<?php endif; ?>
<div class="row rememberMe prefix">
<?php echo $form->checkBox($model,'rememberMe'); ?>
<?php echo $form->labelEx($model,'rememberMe'); ?>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton('',array('class'=>'btn_login')); ?>
</div>
<?php $this->endWidget(); ?>
</div>
现在在IE6 IE7下登陆时,即使验证码输入正确,但表单提交后,依然提示验证码出错。在POST后的状态下,再次输入验证码(这里验证码串已经变掉了,照理说,正常情况下,3次连续输入错误后,验证码才会变),就可以登陆了。IE8和FF,暂时未发现问题。
如果把enableAjaxValidation设成false,一切都没有问题!