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に見えますが、ブラウザのネットワーク コンソールを見ると、ajax 呼び出しがないことがわかります ( validateOnSubmittrue に設定してフォームを送信した場合を除く)。

EDIT : を使用する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 に答える