2017-02-20 94 views
0

我正在使用BS模式在時事通訊表單上顯示反饋。 它使用AJAX和PHP在數據庫中插入電子郵件並返回STATUS。Bootstrap模態,反饋不會消失

PHP和AJAX響應工作正常,驗證和一切,但是,當我調用模態使用JS來顯示反饋,模態不再關閉,不能被解僱。

模態:

<div id="myModal" class="modal fade" role="dialog"> 
    <div class="modal-dialog"> 
    <!-- Modal content--> 
    <div class="modal-content"> 
     <div class="modal-header"> 
     <button type="button" class="close" data-dismiss="modal">&times;</button> 
     <h4 class="modal-title">ENGINE|Sistemas</h4> 
     </div> 
     <div class="modal-body"> 
     <p id="response"></p> 
     </div> 
     <div class="modal-footer"> 
     <button type="button" class="btn btn-primary" data-dismiss="modal">Fechar</button> 
     </div> 
    </div> 
    </div> 
</div> 

而且JS:

$(function() 
{ 
    var form = $('#newsletter-form'); 
    $(form).submit(function(e) 
    { 
    e.preventDefault(); 

    var formData = $(form).serialize(); 

    $.ajax({ 
     type: 'POST', 
     url: $(form).attr('action'), 
     data: formData 
    }) 

    // ---------------------------------------- 
    // Success 
    // ---------------------------------------- 
    .done(function(response) 
    { 
     $('#myModal').modal('show'); 
     $('#myModal, #response').replaceWith(response); 
     $('#newsletter-email').val(''); 
    }) 

    // ---------------------------------------- 
    // Error 
    // ---------------------------------------- 
    .fail(function(data) 
    { 
     if (data.responseText !== '') 
     { 
     $('#myModal').modal('show'); 
     $('#myModal, #response').replaceWith(data.responseText); 
     } 
     else 
     { 
     alert('Ocorreu um erro! Seu email não foi cadastrado.'); 
     } 
    }); 
    }); 
}); 

我不明白爲什麼壽模式完美展現了反應,但根本不會關閉了...

任何幫助?

回答

0

你是否在控制檯中看到錯誤的js?如果沒有,試試這個:

$("#myModal").on('hidden', function(){ 
    $("#myModal").remove(); 
    $('.modal-backdrop').remove(); 
}); 
+0

我剛foundout使得顯示所述響應是導致誤差修改。 '('#myModal')。modal('show');'工作正常,但如果我把響應'$('#myModal,#response')。replaceWith(data.responseText);'它停止工作! –

+0

而且我已經試着做你發佈的內容,而不是工作。 –

0

那麼,現在它的工作。

我不知道爲什麼,但反應阻止了模態的行爲正確。

解決只是改變:

$('#myModal').modal('show'); 
    $('#myModal, #response').replaceWith(data.responseText); 

$('#myModal').modal('show'); 
    $('#response').text(data.responseText); 

=)