ajaxSubmitButton做多次提交

时间:2013-10-31 09:22:33

标签: ajax yii

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

1 个答案:

答案 0 :(得分:0)

你应该发布控制器代码,我认为你的行动中有重定向。

function actionAjax..() {
    ...
    $this->redirect('action');
    ...
}