在提交表单并显示表单错误摘要后,页面上会自动显示发布请求<?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:') ?>
答案 0 :(得分:1)
clientOptions也可以接受:
'afterValidate' => 'js:function(form, data, hasError){
if(hasError){
// do something with: data
}
}'
我做的是这样的http://phpfiddle.org/lite/code/4j3-6rx然后在服务器端,我只返回一个json消息,该消息在ajax成功回调中被解析,非常简单。