Olá, estou com um problema com os campos DropDownList Estado e Cidade. Em uma situação de Create quando eu preencho o formulário e algum validador no servidor retorna algum erro,ex: Validador de cpf retorna CPF invalido, após o retorno, refresh, da pagina com a mensagem de erro, os campos de Estado e cidade perdem seus valores selecionados e voltam para o valor empty. Caso somente erros de validação do lado do cliente ocorram, ex: campo vazio, ou nenhum erro ocorra esse problema não acontece, os dados são validados e armazenados no banco sem problemas. Em uma situação de Update esse problema não ocorre em nenhum erro de validação tanto do lado do cliente quanto do lado do servidor. Segue o código da view
<?php
/* @var $this ClienteController */
/* @var $model Cliente */
/* @var $form CActiveForm */
?>
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'cliente-form',
'enableAjaxValidation'=>false,
'enableClientValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true
)
)); ?>
<p class="note">Fields with <span class="required">*</span> are required.</p>
<?php echo $form->errorSummary(array($model_cliente,$model_endereco,$model_estado)); ?>
<div class="row">
<?php echo $form->labelEx($model_cliente,'cnpj'); ?>
<?php echo $form->textField($model_cliente,'cnpj',array('size'=>14,'maxlength'=>14)); ?>
<?php echo $form->error($model_cliente,'cnpj'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model_cliente,'razao_social'); ?>
<?php echo $form->textField($model_cliente,'razao_social',array('size'=>60,'maxlength'=>255)); ?>
<?php echo $form->error($model_cliente,'razao_social'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model_cliente,'nome_fantasia'); ?>
<?php echo $form->textField($model_cliente,'nome_fantasia',array('size'=>60,'maxlength'=>255)); ?>
<?php echo $form->error($model_cliente,'nome_fantasia'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model_cliente,'ramo_atividade'); ?>
<?php echo $form->dropDownList($model_cliente,'ramo_atividade',$this->getRamosDeAtividades(),array('empty'=>'Selecione...')); ?>
<?php echo $form->error($model_cliente,'ramo_atividade'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model_cliente,'natureza_juridica'); ?>
<?php echo $form->dropDownList($model_cliente,'natureza_juridica',$this->getNaturezasJuridicas(),array('empty'=>'Selecione...')); ?>
<?php echo $form->error($model_cliente,'natureza_juridica'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model_cliente,'data_abertura'); ?>
<?php echo $form->textField($model_cliente,'data_abertura');?>
<?php echo $form->error($model_cliente,'data_abertura'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model_endereco,'logradouro'); ?>
<?php echo $form->textField($model_endereco,'logradouro'); ?>
<?php echo $form->error($model_endereco,'logradouro'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model_endereco,'numero'); ?>
<?php echo $form->textField($model_endereco,'numero'); ?>
<?php echo $form->error($model_endereco,'numero'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model_endereco,'bairro'); ?>
<?php echo $form->textField($model_endereco,'bairro'); ?>
<?php echo $form->error($model_endereco,'bairro'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model_endereco,'complemento'); ?>
<?php echo $form->textField($model_endereco,'complemento'); ?>
<?php echo $form->error($model_endereco,'complemento'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model_endereco,'cep'); ?>
<?php echo $form->textField($model_endereco,'cep'); ?>
<?php echo $form->error($model_endereco,'cep'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model_estado,'uf'); ?>
<?php
echo CHtml::dropDownList( 'uf','',$this->getEstados(),
array(
'id'=>'Estado_uf',
'options'=>array($model_estado->id=>array('selected'=>'selected')),
'empty'=>'Selecione...',
'ajax' =>
array(
'type'=>'POST', //request type
'url'=>CController::createUrl('getCidadesDoEstado').
'update'=>'#Endereco_cidade'
)
)
);
?>
<?php echo $form->error($model_estado,'uf'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model_endereco,'cidade'); ?>
<?php
if($model_endereco->isNewRecord){
echo CHtml::dropDownList(CHtml::activeName($model_endereco, 'cidade'),'',array(), array('empty'=>'Selecione...','id'=>'Endereco_cidade'));
}else{
echo CHtml::dropDownList(CHtml::activeName($model_endereco, 'cidade'),$model_endereco->cidade,$this->getCidades($model_estado), array('empty'=>'Selecione...','id'=>'Endereco_cidade'));
}
?>
<?php echo $form->error($model_endereco,'cidade'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model_cliente,'telefone_comercial'); ?>
<?php echo $form->textField($model_cliente,'telefone_comercial'); ?>
<?php echo $form->error($model_cliente,'telefone_comercial'); ?>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton($model_cliente->isNewRecord ? 'Create' : 'Save'); ?>
</div>
<?php $this->endWidget(); ?>
</div><!-- form -->
Não estou conseguindo resolver, alguem tem alguma dica ?