如何在ajax请求上显示CActiveForm :: errorSummary()? (Yii的)

时间:2013-04-12 18:34:25

标签: php yii

在提交表单并显示表单错误摘要后,页面上会自动显示发布请求<?php echo $form->errorSummary($model) ?>。如何让它出现在 Ajax 请求中?

编辑:

以下是我的观看文件:

<div class="form" >
    <?php
    $form = $this->beginWidget('CActiveForm',array(
        'id'=>'change-profile-form',
        'enableAjaxValidation'=>true,
        'enableClientValidation'=>true,
        'action' => Yii::app()->createUrl('upanel/user/CProfile'),
        'method' => 'POST',
        'clientOptions'=>array(
            'validateOnSubmit'=>true,
            'validateOnChange'=>true,
            'validateOnType'=>false,
        ),
    ));
    ?>
    .
    .
    .
    <div class="row">
        <?php
            echo CHtml::ajaxSubmitButton(
                'update',
                Yii::app()->createUrl('upanel/user/CProfile'),
                array(
                    'type'=>'POST',
                    'data'=>"js:$('#change-profile-form').serialize()",
                    'success'=>'callback',
                    'beforeSend'=>'before',
                ),
                array(
                    'id'=>'update-button'.uniqid(),
                    'class'=>'submit-button',
                )
            );
        ?>
    </div>
    <?php $this->endWidget() ?>

</div> <!-- End The Profile Form  -->
<?php echo $form->errorSummary($model,'Please solve these errors:') ?>

1 个答案:

答案 0 :(得分:1)

clientOptions也可以接受:

'afterValidate' => 'js:function(form, data, hasError){ 
     if(hasError){
         // do something with: data
     }
 }'

我做的是这样的http://phpfiddle.org/lite/code/4j3-6rx然后在服务器端,我只返回一个json消息,该消息在ajax成功回调中被解析,非常简单。