当前位置: 代码迷 >> Ajax >> Yii使用Ajax验证时,怎么设置某些字段不需要验证
  详细解决方案

Yii使用Ajax验证时,怎么设置某些字段不需要验证

热度:235   发布时间:2013-03-01 18:33:02.0
Yii使用Ajax验证时,如何设置某些字段不需要验证

经常像你注册页面,你可能非常希望只需要Ajax去验证用户名和Email,而不需要使用Ajax再去验证密码,默认如果你使用Yii 内置的ajax验证Form,例如:


$form=$this->beginWidget('CActiveForm', array(
??????? 'id'=>'usuario-form',
??????? 'enableClientValidation'=>true,
??????? 'enableAjaxValidation' => true,
??????? 'clientOptions' => array(
??????????????? 'validateOnSubmit' => true,
??????? ),
??? 'focus' => array($model, 'login'),
));

?

这样将使用Ajax验证页面所有的字段,包括一些不需要使用Ajax的验证,像Password字段.

解决办法:

http://www.yiiframework.com/doc/api/1.1/CActiveForm#error-detail

查看上面的文档,看error方法的签名和参数.

public string error(CModel $model, string $attribute, array $htmlOptions=array ( ), <br><br>boolean $enableAjaxValidation=true, boolean $enableClientValidation=true)

?

第四个参数告诉我们,如果这个字段不需要Ajax验证,加上false即可.

<?php echo $form->error($model,'name', array(), false); ?>

?

视图文件中完整的密码字段示例:

<div class="row">
		<?php echo $form->labelEx($model,'password'); ?>
		<?php echo $form->passwordField($model,'password',array('size'=>30,'maxlength'=>32)); ?>
		<?php echo $form->error($model,'password', array(), false); ?>
	</div>

?

?

?

  相关解决方案