所以问题是我得到了表格并通过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 中添加 $('body').unbind() 并成功。2. 添加取消委托()。
也无济于事。
Yii 版本是 1.1.14。