Yii2 ActiveForm Ajax POST вызывается дважды

Я новичок в Yii2. Это мое первое серьезное приложение.

Проблема в том, что моя модальная форма AJAX дважды воспринимает POST.

Вот как я называю модальную форму

                Modal::begin([
                    'header' => '<h2>Hello world</h2>',
                    'toggleButton' => ['label' => 'click me'],
                    'id' => 'order_form'
                ]);


                Modal::end();
                ?>

Это мой JS-код

$this->registerJs('
$(function() {
$( "#orderer_form" ).on( "submit", function( event ) {
  event.preventDefault();
  event.stopImmediatePropagation();
  var formData = $( this ).serialize() ;
   alert($("#orderer_form").serializeArray());
       $.ajax({
            type: "POST",
            url: "/order",
            data: formData,
            success: function(msg){
                $("#thanks").html(msg);
                $("#order_form").modal("hide"); 
            },
            error: function(){
            //alert("failure");
            }
        });
    return false;
});
});
');

Вот как я отображаю модальное представление

<?php echo \Yii::$app->view->renderFile('@app/views/common/order_form.php', array('model'=>new salestable()));?>

Это результат

введите здесь описание изображения


person Николай Булашев    schedule 15.11.2015    source источник
comment
Для меня добавление event.stopImmediatePropagation() (я уже решил, что event.preventDefault() решил эту проблему. Возможно, стоит рассмотреть возможность уничтожения модального окна при закрытии. Я подозреваю, что создается несколько модальных форм. Также посмотрите, выполняет ли ваша форма проверку ajax. В В этом случае добавьте в действие строку $this-›performAjaxValidation($model);   -  person crafter    schedule 26.12.2015


Ответы (1)


Попробуйте изменить js на это, для меня это всегда решает проблему.

$('body').on('submit', '#orderer_form', function() {
    // Your code here
});
person Jap Mul    schedule 16.11.2015