2017-02-20 18 views
0

Я использую BS Modal, чтобы показать отзыв в форме информационного бюллетеня. Он использует AJAX и PHP для вставки электронных писем в БД и возвращает STATUS.Bootstrap modal с обратной связью не отклоняется

Ответы PHP и AJAX работают нормально, с проверками и всем, НО, когда я вызываю Modal с помощью 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, что отображение ответа является причиной erros. с '$ ('# 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); 

=)