Закройте модальный bootstrap без использования "hide" и " data-dismiss"

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

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

2 ответов


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

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

демо

Demo2

посмотреть документация

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


сделать еще одну кнопку, как это

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

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

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

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