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

CActiveForm 的一个极端案例。为什么你需要这么多的表单作为数组。您可以在单个表单中使用它们。但问题又是由于表单的多个实例。这里

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

像这样使用它-

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

但同样,您需要更改实现并避免使用那么多重复的表单。

干杯

于 2013-09-21T13:26:58.063 回答
0

尝试改变

'enableClientValidation'=>true,

或尝试使用

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