0

所以问题是我得到了表格并通过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。

4

1 回答 1

0

您应该已经发布了控制器代码,我认为您的操作中有重定向。

function actionAjax..() {
    ...
    $this->redirect('action');
    ...
}
于 2013-10-31T14:32:00.733 回答