Закрыть bootstrap modal без использования "скрыть" и "удалить данные"

Я хочу закрыть окно модального окна. Если я использую $('#modal').modal('hide'); Это, что-то не так с моим кодом. И если я использую data-dismiss="modal" в шаблоне HTML, действие модального отклонения выполняется до того, как моя фактическая функциональность будет выполняться при нажатии кнопки.

Итак, есть ли другой способ закрыть bootstrap modal или любую идею использовать data-dismiss="modal" во время выполнения?

Ответ 1

Вы можете сделать это с использованием автоматического модального закрытия, в котором используется атрибут data-dismiss или с ручным модальным открытием (как я предполагаю, вы сейчас делаете), подписавшись на событие hide и используйте preventDefault на событие.

$('yourmodalselector').on('hide',function(e){
   if(yourConditionNotToCloseMet){
      e.preventDefault();
   }
});

Демо

Demo2

См. Документация

Скрыть событие события сразу же запускается, когда вызван метод экземпляра hide, который называется "увядшим", и это лучшее место, чтобы предотвратить закрытие модала.

Ответ 2

Сделайте еще одну кнопку, подобную этой

<button type="button" class="btn btn-warning btn-lg shiny" data-dismiss="modal" aria-hidden="true">Cancel</button>

Эта кнопка содержит data-dismiss="modal". Вы можете скрыть это, если хотите.

Теперь вы можете использовать любую другую функцию индивидуально, и если вы хотите скрыть модальный, вы можете позвонить

$(".btn-warning").click();