所以问题是我得到了表格并通过ajax提交。我之前做了很多次,而且它总是在工作,现在我该怎么做。
更多信息。表单配置:
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'user-form',
"action"=>"#",
'enableClientValidation'=>true,
'enableAjaxValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
),
'htmlOptions'=>array(
),
));
?>
按钮:
<?php
$id='applications-form_submit_' . rand(1, 255);
echo CHtml::ajaxSubmitButton($model->isNewRecord ? UserModule::t('Create') : UserModule::t('Save'), Yii::app()->request->url, array(
'type' => 'post',
'dataType' => 'json',
'beforeSend'=>'function(){$("body").undelegate("#'.$id.'","click");}',
'success' =>
'js:function (e) {
clear_errors();
if (e.status=="success"){
if (e.redirect=="here"){
notification(e.message);
}
else window.location.replace(e.redirect);
} else {
$.each(e, function(key, val) {
$("#user-form #"+key+"_em_").text(val+" ");
$("#user-form #"+key+"_em_").parent(".error_wrapter").addClass("error");
$("#user-form #"+key+"_em_").css("display","block");
});
}
}',
), array(
'id' => $id,
));?>
我认为控制器代码并不重要,导致点击发出2个请求。
已经尝试过的事情: 1.添加onsubmit =“return false;”来形成。 2.添加preventDefault()。 3.改变行动。 它不起作用,所以它不是形式问题。
试图用按钮做什么: 1.在beforeSave和success中添加$('body')。unbind()。 2.添加undelegate()。
也没有帮助。
Yii版本是1.1.14。
答案 0 :(得分:0)
你应该发布控制器代码,我认为你的行动中有重定向。
function actionAjax..() {
...
$this->redirect('action');
...
}