Olá! Tenho um formulário de cadastro de clientes que possui alguns campos de imput text. Estou precisando apagar o conteúdo e as mensagens de erro e resetar o css de erro e sucesso da validação padrão do Yii, que é feita com ajax,de apenas alguns campos deste formulário. Em meu formulário há um botão para limpar os campos:
<?php echo CHtml::resetButton('Limpar',array('id'=>'resetar')); ?>
Ao clicar nele o formulário inteiro é limpo, e não é isso que procuro. alguém tem alguma dica?
A minha View:
<?php
/* @var $this ClienteController */
/* @var $model Cliente */
/* @var $form CActiveForm */
?>
<?php
Yii::app()->clientScript->registerScript('teste1', "
$('#Cliente_tipo').change(
function(){
var selecionado=$('#Cliente_tipo option:selected').val();
if(selecionado==0){
$('#pessoa_juridica').hide();
$('#pessoa_fisica div').removeClass('row success');
$('#pessoa_fisica div').removeClass('row error');
$('#pessoa_fisica').fadeToggle();
$('#pessoa_fisica div input').val('');
}
if(selecionado==1){
$('#pessoa_fisica').hide();
$('#pessoa_juridica div').removeClass('row success');
$('#pessoa_juridica div').removeClass('row error');
$('#pessoa_juridica').fadeToggle();
$('#pessoa_juridica div input').val('');
}
}
);
$('#resetar').click(function(){
$('#pessoa_fisica').hide();
$('#pessoa_juridica').show();
}
);");
?>
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'cliente-form',
'enableAjaxValidation'=>true,
'enableClientValidation'=>false,
'clientOptions'=>array(
'validateOnSubmit'=>true
)));?>
<p class="note">Fields with <span class="required">*</span> are required.</p>
<?php echo $form->errorSummary(array($cliente,$endereco,$estado,$email,$telefone)); ?>
<div class="row">
<?php echo $form->labelEx($cliente,'tipo'); ?>
<?php
echo $form->dropDownList($cliente,'tipo',
array(
0=>'Pessoa Física',
1=>'Pessoa Jurídica'),
array(
'options'=>array(1=>array('selected'=>'selected')),
));
?>
<?php echo $form->error($cliente,'tipo'); ?>
</div>
<div id="pessoa_juridica" >
<div class="row">
<?php echo $form->labelEx($cliente,'cnpj');?>
<?php
$this->widget('CMaskedTextField', array(
'model' => $cliente,
'attribute' => 'cnpj',
'mask' => '99.999.999/9999-99',
'htmlOptions' => array(
'size' => 18,
'class'=>'required')
));
?>
<?php echo $form->error($cliente,'cnpj'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($cliente,'razao_social'); ?>
<?php echo $form->textField($cliente,'razao_social',array('size'=>60,'maxlength'=>255)); ?>
<?php echo $form->error($cliente,'razao_social'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($cliente,'contato_comercial'); ?>
<?php echo $form->textField($cliente,'contato_comercial',array('size'=>60,'maxlength'=>255)); ?>
<?php echo $form->error($cliente,'contato_comercial'); ?>
</div>
</div>
<div id="pessoa_fisica" style="display:none">
<div class="row">
<?php echo $form->labelEx($cliente,'cpf'); ?>
<?php
$this->widget('CMaskedTextField', array(
'model' => $cliente,
'attribute' => 'cpf',
'mask' => '99.999.999-99',
'htmlOptions' => array('size' => 14 )
));
?>
<?php echo $form->error($cliente,'cpf'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($cliente,'nome'); ?>
<?php echo $form->textField($cliente,'nome',array('size'=>60,'maxlength'=>255)); ?>
<?php echo $form->error($cliente,'nome'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($telefone,'celular'); ?>
<?php
$this->widget('CMaskedTextField', array(
'model' => $telefone,
'attribute' => 'celular',
'mask' => '(99)9999-9999',
'htmlOptions' => array('size' => 13)
));
?>
<?php echo $form->error($telefone,'celular'); ?>
</div>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton($cliente->isNewRecord ? 'Create' : 'Save'); ?>
<?php echo CHtml::resetButton('Limpar',array('id'=>'resetar')); ?>
</div>
<?php $this->endWidget(); ?>
</div><!-- form -->
Como percebem no cabeçalho da minha view eu fiz um script tentando resolver o problema, ele esconde e mostra os campos do formulário de forma correta porém, a parte de resetar as mensagens e as cores verde e vermelha, resultados da validação, ora funciona ora não…