Можно ли остановить модальное сокрытие, когда модальное скрытие вызвано в Bootstrap? - PullRequest
0 голосов
/ 10 апреля 2020

В bootstrap, когда вы нажимаете кнопку закрытия или задний план, можно ли остановить модальное скрытие?

Например, если я запускаю оператор, чтобы проверить значение true или false. Если false, я могу остановить модальное сокрытие?

$(document).on('hide.bs.modal', '#test-modal', function(e) {

  var confirm = confirm("Sure you wanna close this modal?");

  if (confirm == true) {

    // i'm sure, continue closing the modal

  } else {

    // halt closing this modal

  } 

});

Здесь есть скрипка, готовая к тестированию ...

https://jsfiddle.net/joshmoto/yc340rpd/

1 Ответ

1 голос
/ 10 апреля 2020

Вы можете просто использовать e.preventDefault в hide.bs.modal, чтобы предотвратить закрытие модала. Также имейте в виду, что confirm является оконным объектом, поэтому вам, вероятно, следует выбрать другое имя переменной, чтобы избежать этого.

См. Пример проверки концепции:

$('#test-modal').modal('show');

$(document).on('hide.bs.modal', '#test-modal', function(e) {

  var shouldCloseModal = confirm("Sure you wanna close this modal?");

  if (!shouldCloseModal) {
    e.preventDefault();
  } 

});
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.css" rel="stylesheet"/>
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.css" rel="stylesheet"/>
<script src="https://code.jquery.com/jquery-3.4.1.slim.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.js"></script>

<div class="modal fade" id="test-modal" tabindex="-1">
  <div class="modal-dialog">
    <form class="modal-content">

      <div class="modal-header">
        <h5 class="modal-title" id="exampleModalLabel">Test Modal</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>

      <div class="modal-body">

        Try close me and then stop me! If you can...

      </div>

    </form>
  </div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...