Предупреждение о модальном закрытии
На странице у меня будет загрузочный модал с формой, которую не нужно будет заполнять сразу.
Есть ли способ, когда пользователь нажимает кнопку закрыть на модальном, чтобы иметь всплывающее предупреждение с подтверждением закрытия и отменой закрытия?
1 ответ:
Предполагая, что у вас есть 2 модала
Один для формы (первая модальная) и 2-й для предупреждения о закрытии модальной (обе модальные)
И используя bootstrap default modal Behavior
data-toggle
иdata-target
для вызова первого модального (с формой)Важно:
Убедитесь, что вы добавляете
data-backdrop="static"
иdata-keyboard="false"
в форме модальной кнопки триггера, чтобы она не была закрыта при нажатии за пределами модальной, иначе все решение будет бесполезный.Убедитесь, что вы добавили
data-backdrop="false"
в предупреждающий модал, поэтому для первого модала будет только один обратный сброс.Изменения:
Удалить
data-dismiss="modal"
из обоих колонтитуловClose Button
Формы ModalДобавьте
data-dismiss="modal"
к модальному предупреждениюCancel Close button
только для того, чтобы отклонить модальное предупреждениеДобавьте класс
closefirstmodal
в форму Modal Header / FooterClose button
, чтобы вызвать предупреждение modal с помощью jQuery click function и слушатель модальных событий bootstrapДобавить класс
confirmclosed
в предупреждение модальныеConfirm close Button
, которые будем использовать, чтобы закрыть обе формы / предупреждение модальные глаголы с на jQuery нажмите кнопку функция и скрывать модальные через jQuery$('#Modalselector').modal('hide')
HTML модала
<button type="button" class="btn btn-info" data-toggle="modal" data-target="#Form" data-backdrop="static" data-keyboard="false">Open Modal</button> <!-- Modal With Form --> <div id="Form" class="modal fade" role="dialog"> <div class="modal-dialog"> <!-- Modal content--> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close closefirstmodal">×</button> <h4 class="modal-title">Modal Header</h4> </div> <div class="modal-body"> <p>Some Form Elements Here</p> </div> <div class="modal-footer"> <button type="button" class="btn btn-default closefirstmodal">Close</button> </div> </div> </div> </div> <!-- Modal With Warning --> <div id="Warning" class="modal fade" role="dialog" data-backdrop="false"> <div class="modal-dialog"> <!-- Modal content--> <div class="modal-content"> <div class="modal-body"> <p>This Is A Warning Message</p> <button type="button" class="btn btn-danger confirmclosed">Confirm Close</button> <button type="button" class="btn btn-primary" data-dismiss="modal">Cancel Close</button> </div> </div> </div> </div>
JS с модальным Прослушивателем событий B. S (Вы можете пропустить прослушиватель событий, но я предпочитаю этот способ)
//jQuery and Bootstrap Lib's always comes first $(document).ready(function () { //Dom Ready $('.closefirstmodal').click(function () { //Close Button on Form Modal to trigger Warning Modal $('#Warning').modal('show').on('show.bs.modal', function () { //Show Warning Modal and use `show` event listener $('.confirmclosed').click(function () { //Waring Modal Confirm Close Button $('#Warning').modal('hide'); //Hide Warning Modal $('#Form').modal('hide'); //Hide Form Modal }); }); }); });
JS без модального события B. S Слушатель
$(document).ready(function () { $('.closefirstmodal').click(function () { $('#Warning').modal('show'); }); $('.confirmclosed').click(function () { $('#Warning').modal('hide'); $('#Form').modal('hide'); }); });