我想用Ajax驗證方法驗證我的表單。因此,我已經爲此更改了視圖文件的代碼。Ajax驗證正在Yii中進行部分驗證
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'customers-form',
'enableAjaxValidation'=>true,
'enableClientValidation'=>true,
'focus'=>array($model,'firstname,lastname,gender,email,contact_no,address,state,country'),
)); ?>
<p class="note">Fields with <span class="required">*</span> are required.</p>
<?php echo $form->errorSummary($model); ?>
<div class="row">
<?php echo $form->labelEx($model,'firstname'); ?>
<?php echo $form->textField($model,'firstname',array('size'=>60,'maxlength'=>80)); ?>
<?php echo $form->error($model,'firstname'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'lastname'); ?>
<?php echo $form->textField($model,'lastname',array('size'=>60,'maxlength'=>80)); ?>
<?php echo $form->error($model,'lastname'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'gender'); ?>
<?php echo $form->radioButtonList($model,'gender',array('Male'=>'Male','Female'=>'Female'),array(
'labelOptions'=>array('style'=>'display:inline;padding-right:10px'),'separator'=>'',));?>
<?php echo $form->error($model,'gender'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'email'); ?>
<?php echo $form->textField($model,'email',array('size'=>45,'maxlength'=>45)); ?>
<?php echo $form->error($model,'email'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'contact_no'); ?>
<?php echo $form->textField($model,'contact_no',array('size'=>45,'maxlength'=>45)); ?>
<?php echo $form->error($model,'contact_no'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'address'); ?>
<?php echo $form->textField($model,'address',array('size'=>60,'maxlength'=>120)); ?>
<?php echo $form->error($model,'address'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'state'); ?>
<?php echo $form->textField($model,'state',array('size'=>45,'maxlength'=>45)); ?>
<?php echo $form->error($model,'state'); ?>
</div>
<div class="row">
<?php echo $form->labelEx($model,'country'); ?>
<?php echo $form->textField($model,'country',array('size'=>45,'maxlength'=>45)); ?>
<?php echo $form->error($model,'country'); ?>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?>
</div>
<?php $this->endWidget(); ?>
</div><!-- form -->
我所做的規則,這種模式是這樣的
public function rules()
{
// NOTE: you should only define rules for those attributes that
// will receive user inputs.
return array(
array('firstname,lastname,gender,email,contact_no,address,state,country', 'required'),
array('firstname, lastname', 'length', 'max'=>80),
);
}
所有代碼後,我來看看,所有的領域都出現驗證以正常的方式,而是通過Ajax驗證打算時唯一的Firstname, Lastname, Email
顯示ajax validation.Rest字段沒有顯示任何ajax驗證。有人告訴我我在這裏做錯了什麼?任何幫助和建議將是非常可觀的。 編輯 這裏是正在處理Ajax驗證
protected function performAjaxValidation($model)
{
if(isset($_POST['ajax']) && $_POST['ajax']==='customers-form')
{
echo CActiveForm::validate($model);
Yii::app()->end();
}
}
你也可以說是處理這種形式的控制器代碼? – 2012-02-29 13:17:53
Thanks @ bool.dev您的快速回復。我已更新控制器的代碼。 – NewUser 2012-02-29 13:23:19
Thanks @ bool.dev試圖解決這個問題。我已經得到了解決方案。 – NewUser 2012-02-29 13:40:39