2015-11-15 4 views
0

им новичка в Yii2. Это мое первое серьезное приложение.Yii2 ActiveForm Ajax POST дважды называется

Проблема заключается в том, что мой 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()));?> 

Это является результатом

enter image description here

+0

Для меня добавление event.stopImmediatePropagation() (я уже event.preventDefault() решил эту проблему. Может быть, посмотреть на уничтожение модального на закрытии. Я подозреваю, что несколько модальных форм создаются. Также смотрите, если ваш form делает проверку ajax. В этом случае добавьте строку «$ this-> performAjaxValidation ($ model);» к вашему действию. – crafter

ответ

0

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

$('body').on('submit', '#orderer_form', function() { 
    // Your code here 
});