0

我真的在这里变得一无所知:

CActiveForm enableAjaxValidation 设置为 FALSE。

<?php $form=$this->beginWidget('CActiveForm', array(
    'id'=>'team-form',
        'enableAjaxValidation'=>false,
        'enableClientValidation'=>true,
        'clientOptions'=>array(
            'validateOnSubmit'=>true,

    ),
        'htmlOptions' => array('enctype' => 'multipart/form-data'),
)); ?>

在控制器上,我注释了这一行:

//$this->performAjaxValidation(array($model,$member));

尽管如此,每次我通过这些字段时,我都会收到在模型上设置的规则消息,所以确实是在进行 ajax 验证。

为什么会这样?

4

1 回答 1

1

clientValidation看起来几乎一样ajaxValidation,看看你的 broswer 网络控制台,你会看到没有 ajax 调用(除非你提交表单,因为你设置validateOnSubmit为 true)。

编辑:当您使用时clientValidation,Yii 将根据您在模型中声明的规则添加 javascript 来验证您的表单属性。就像是 :

jQuery('#model-form').yiiactiveform({
  // ...
    'clientValidation':function(value, messages, attribute) {
       if(jQuery.trim(value)=='') {
         messages.push("Required attribute.");
       }
    },
  // ...
});
于 2013-04-23T14:44:13.980 回答