1

On Post请求<?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:') ?>
4

1 回答 1

1

clientOptions 也可以接受:

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

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

于 2013-04-12T19:32:00.917 回答