Закрыть мод начальной загрузки после отправки
Как я могу закрыть модал начальной загрузки после нажатия на Delete
кнопка? Вот мой код:
<div id="media_delete_confirmation" class="modal fade">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title">Confirmation</h4>
</div>
<form id="modal-form">
<div class="modal-body">
<input id="media_action" value="deleteMediaAction" type="hidden"/>
<p>Do you want to save changes you made to document before closing?</p>
<p class="text-warning"><small>If you don't save, your changes will be lost.</small></p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal">Keep</button>
<button type="button" class="btn btn-default" id="modal_delete">Delete</button>
</div>
</form>
</div>
</div>
</div>
а вот другая часть:
$("#modal_delete").click(function() {
var id = $(".image-picker").val();
var media_action = $("#media_action").val();
$.ajax({
type: 'POST',
url: '?page=myMediaController&action=deleteMedia',
data: {'media_id' : id},
success: function(data) {
$("#media_delete_confirmation").modal("hide");
}
});
});
6 ответов
У меня была та же проблема, и я смог закрыть модальное диалоговое окно следующим образом:
<div id="approveDialog" class="modal approveDialog hide">
<!-- various form elements -->
<div class="modal-footer pull-center">
<a href="#" data-dismiss="modal" aria-hidden="true" class="btn">Back to Listings</a>
<button id="submitApprove" class="btn btn-success">Shop</button>
</div>
</div>
$('button#submitApprove').on("click", function(event) {
// submit form via ajax, then
event.preventDefault();
$('#approveDialog').modal( 'hide' );
});
Не нужно скрывать модель с помощью javascript, вы можете просто использовать data-dismiss="modal" в атрибуте тега кнопки следующим образом.
<div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal">Keep</button>
<button type="button" class="btn btn-default" id="modal_delete" data-dismiss="modal">Delete</button>
</div>
Вы можете просто скрыть модальное окно при отправке $('#media_delete_confirmation').modal('hide'); // чтобы скрыть модальный
Просто примерить <script>
до конца вашего тела, пишущего это
$('#media_delete_confirmation').submit(function() {
$('#media_delete_confirmation').modal('hide');
});
У меня просто была такая же проблема. Я пытался закрыть модальное окно после отправки. Единственный способ, которым я мог решить это, заключался в следующем.
В функции успеха я добавил этот код через jQuery:
success: function(respuesta){
$('#btnGuardarCambios').attr("data-dismiss", "modal");
На кнопке "Сохранить изменения" я использовал attr
метод. Если ajax успешен, я просто добавляю новый атрибут (data-dismiss
) и установите его значение (модальное), иначе модальное не исчезнет.
РЕДАКТИРОВАТЬ: Это не работает на IE и Chrome, работает только на Mozilla: c
Сначала добавьте идентификатор или класс в этой кнопке отправки, как closemodel. затем добавьте другой идентификатор или класс в этом первом div. затем добавьте этот код JQuery
<script>
$(document).ready(function() {
$('#closemodel').click(function() {
$('#CreateAccount1').modal('toggle');
});
});
</script>
V3 вы можете попробовать
success: function(data) {
// close modal
$( '#media_delete_confirmation' ).modal( 'hide' ).data( 'bs.modal', null );
// event after hidden
$('#media_delete_confirmation').on('hidden', function(){
$(this).data('modal', null); // destroys modal
});
}
Версия 2
$( '#media_delete_confirmation' ).remove();
$( '.modal-backdrop' ).remove(); // removes the overlay