Php Yii在聚焦之前验证CActiveForm dropDownList

Php Yii在聚焦之前验证CActiveForm dropDownList,php,yii,Php,Yii,我启用了clientValidation,甚至当我单击文本字段并将其保留为空时,例如,-Yii验证文本字段和dropDownList 小部件: $form=$this->beginWidget('CActiveForm', array( 'id'=>'service-form', 'enableClientValidation'=>true, 'clientOptions'=>array( 'validateOnSu

我启用了clientValidation,甚至当我单击文本字段并将其保留为空时,例如,-Yii验证文本字段和dropDownList

小部件:

$form=$this->beginWidget('CActiveForm', array(
    'id'=>'service-form',
    'enableClientValidation'=>true,        
    'clientOptions'=>array(
        'validateOnSubmit'=>true,
),
下拉列表

$models = Countries::model()->findAll();

$list = CHtml::listData($models, 'countryname', 'countryname');                               

echo $form->dropDownList($model, 'country', $list, array('empty' => 'Select a country...'));
echo $form->error($model,'country');
规则()

您需要在CActiveForm小部件中使用“enableAjaxValidation”

$form=$this->beginWidget('CActiveForm', array(
    'id'=>'service-form',
    'enableAjaxValidation'=>true
    'enableClientValidation'=>true,        
    'clientOptions'=>array(
        'validateOnSubmit'=>true,
),
在验证前的控制器操作中:

if(Yii::app()->getRequest()->getIsAjaxRequest()) {
    echo CActiveForm::validate( array( $model )); 
    Yii::app()->end(); 
}
另见文件:

if(Yii::app()->getRequest()->getIsAjaxRequest()) {
    echo CActiveForm::validate( array( $model )); 
    Yii::app()->end(); 
}