Según he leído el problema se genera en varias personas al llamar una vista por el método renderPartial,
Action controlador:
public function actionRegistro()
{
$model=new Usuario;
$bool=false;
$this->performAjaxValidation($model);
if(isset($_POST['Usuario']))
{
$model->usu_estado=2;
$model->attributes= General::arrayChangeValuesToUpper($_POST['Usuario']);
if($model->validate()){
if($model->save(false)){
$bool=true;
$this->renderPartial('registro',array('model'=>$model,'bool'=>$bool));
}
}
}
$this->renderPartial('registro',array('model'=>$model,'bool'=>$bool));
}
Regla del modelo:
public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
array('tid_codigo, usu_identificacion, fic_codigo, usu_nombre, usu_apellidos, usu_correo, userid, usu_clave, pre_codigo, usu_res_secr, confiPassword', 'required'),
array('pre_codigo', 'numerical', 'integerOnly'=>true),
array('tid_codigo', 'length', 'max'=>2),
array('usu_identificacion', 'length', 'max'=>12),
array('fic_codigo', 'length', 'max'=><img src='http://www.yiiframework.com/forum/public/style_emoticons/default/cool.gif' class='bbc_emoticon' alt='8)' />,
array('usu_nombre, usu_res_secr', 'length', 'max'=>30),
array('usu_apellidos', 'length', 'max'=>50),
array('usu_correo', 'length', 'max'=>80),
array('usu_correo','email'),
array('userid', 'length', 'max'=>15,'min'=>6),
array('userid','unique','className'=>'Usuario'),
array('usu_clave','compare','compareAttribute'=>'confiPassword','operator'=>'==','message'=> Yii::t('es', 'The passwords are not the same')),
array('usu_clave, confiPassword', 'length', 'max'=>12,'min'=>6),
array('usu_estado', 'length', 'max'=>9),
array('usu_ult_acce, usu_fec_crea, usu_fec_modi', 'safe'),
// The following rule is used by search().
// Please remove those attributes that should not be searched.
array('tid_codigo, usu_identificacion, fic_codigo, usu_nombre, usu_apellidos, usu_correo, userid, usu_clave, pre_codigo, usu_res_secr, usu_estado, usu_ult_acce, usu_fec_crea, usu_fec_modi', 'safe', 'on'=>'search'),
);
}
Vista llamada por renderPartial:
<div class="sectionRegistro">
<fieldset class="formu">
<legend style="text-align: center;"><b>REGISTRE SUS DATOS PERSONALES</b></legend>
<div class="form" style="margin-left: 30%;">
<?php echo CHtml::image(Yii::app()->theme->baseUrl.'/img/hermeslogo.png','', array('width'=>'200px','height'=>'200px', 'style'=>'margin-left: 80px;'));?>
<?php
$form=$this->beginWidget('CActiveForm', array(
'id'=>'usuario-form',
'enableAjaxValidation'=>true,
'enableClientValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
),
));
echo $form->errorSummary($model);
?>
<p class="note"><?php echo Yii::t('es', 'Fields with'); ?> <span class="required">*</span> <?php echo Yii::t('es', 'are required'); ?>.</p>
<div class="row">
<?php echo $form->labelEx($model,Yii::t('es','fic_codigo'));
echo $form->dropDownList($model,'fic_codigo', CHtml::listData(Ficha::model()->findAll(), 'fic_codigo', 'fic_nombre'),array('empty'=>'-- Seleccione --'));
echo $form->error($model,'fic_codigo'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,Yii::t('es','tid_codigo'));
echo $form->dropDownList($model,'tid_codigo', CHtml::listData(TipoIdentificacion::model()->findAll(), 'tid_codigo', 'tid_nombre'),array('empty'=>'-- Seleccione --'));
echo $form->error($model,'tid_codigo'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,Yii::t('es','usu_identificacion'));
echo $form->textField($model,'usu_identificacion');
echo $form->error($model,'usu_identificacion'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,Yii::t('es','usu_nombre'));
echo $form->textField($model,'usu_nombre');
echo $form->error($model,'usu_nombre'); ?>
</div>
<div class="row">
<?php
echo $form->labelEx($model,Yii::t('es','usu_apellidos'));
echo $form->textField($model,'usu_apellidos');
echo $form->error($model,'usu_apellidos');
?>
</div>
<div class="row">
<?php echo $form->labelEx($model, Yii::t('es','usu_correo'));
echo $form->textField($model,'usu_correo');
echo $form->error($model,'usu_correo'); ?>
</div>
<div class="row">
<?php
echo $form->labelEx($model,Yii::t('es','userid'));
echo $form->textField($model,'userid');
echo $form->error($model,'userid');
?>
</div>
<div class="row">
<?php
echo $form->labelEx($model,Yii::t('es','usu_clave'));
echo $form->PasswordField($model,'usu_clave');
echo $form->error($model,'usu_clave');
?>
</div>
<div class="row">
<?php
echo $form->labelEx($model,Yii::t('es','confiPassword'));
echo $form->PasswordField($model,'confiPassword');
echo $form->error($model,'confiPassword');
?>
</div>
<div class="row">
<?php echo $form->labelEx($model,Yii::t('es','pre_codigo'));
echo $form->dropDownList($model,'pre_codigo', CHtml::listData(PreguntaSecreta::model()->findAll(), 'pre_codigo', 'pre_pregunta'),array('empty'=>'-- Seleccione --'));
echo $form->error($model,'pre_codigo'); ?>
</div>
<div class="row">
<?php
echo $form->labelEx($model,Yii::t('es','usu_res_secr'));
echo $form->textField($model,'usu_res_secr');
echo $form->error($model,'usu_res_secr');
?>
</div>
<div class="row buttons" style="margin-left: 10%;">
<?php echo CHtml::submitButton(Yii::t('es', 'Register'),array('class'=>'btn btn-primary')); ?>
</div>
<br/>
<div class="row" style="margin-left: 10%;">
<?php echo CHtml::link(CHtml::button('Regresar al ingreso',array('class'=>'btn btn-success')), 'login/index'); ?>
</div>
<?php $this->endWidget(); ?>
</div><!-- form -->
</fieldset>
</div>
El problema debe ser teórico creo yo, por ello seguiré leyendo sobre esta función y como funcionan estas validaciones por fuera de un template.