1

以下CActiveFormでは、同じモデルの複数のインスタンスを持つフォームをレンダリングするために使用しています。フォームを送信すると、個々の属性の ajax 検証エラーが表示されますが、表示されerror summaryません。考えられる問題は何ですか?どうもありがとう

<?php 
    $form=$this->beginWidget('CActiveForm', array(
        'id'=>'task-form',
        'enableClientValidation'=>false,
        'enableAjaxValidation' =>true,
        'clientOptions'=>array(
            'validateOnSubmit'=>true,
            'validateOnChange'=>false,
        ),
    )); 
    Yii::app()->session['form'] = $form;
    ?>

    <?php echo $form->errorSummary($models); ?> 

    <ul class="tasks">
        <?php foreach($models as $index=>$model): ?>
            <?php $this->renderPartial('_task', array(
                'model' => $model,
                'index' => $index,
                'form' => $form,
            )); ?>
        <?php endforeach; ?>
    </ul>

    <div class="row buttons">
        <?php echo CHtml::submitButton('Save')?>
    </div>

    <?php $this->endWidget(); ?>
</div>
4

2 に答える 2

0

変更してみる

'enableClientValidation'=>true,

または使用してみてください

 <?php echo CHtml::errorSummary(array($a,$b)); ?> 
于 2013-09-21T15:40:55.577 に答える
0

CActiveForm の極端なケースです。配列のようにこれほど多くのフォームが必要な理由。単一のフォームで使用できます。しかし、問題はフォームの複数のインスタンスが原因です。ここ

<?php echo $form->errorSummary($models); ?> 

このように使用してください-

 foreach($models as $model)
 {
 echo $form->errorSummary($model);
 }

しかし、繰り返しますが、実装を変更し、多くの重複したフォームを使用しないようにする必要があります。

乾杯

于 2013-09-21T13:26:58.063 に答える