Модальное диалоговое окно не закрывается с помощью StopPropogation - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть следующее диалоговое окно:

<div class="modal fade PSettings" id="ModalMsg" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
    <div class="modal-content">
        <div class="modal-body">
        </div>
        <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>
    </div>
</div>

Вот мой jquery код:

    $(".btn").click(function (evt) {

    var wID = $('#MPID :selected').val();

    if (wID.length == 0) {

      evt.preventDefault();

      $('#ModalMsg .modal-body').html('<p><b>Please select a valid name from the drop down list.</b></p>');

      $('#ModalMsg').modal({
        backdrop: 'static',
        keyboard: false,
        show: true
      });

      evt.stopPropagation();

    }
});

Проблема, с которой я сталкиваюсь: что мне нравится показывать диалоговое окно и иметь возможность пользователю нажимать на кнопку «Закрыть». Ничего не происходит, когда пользователь нажимает кнопку закрытия.

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

1 Ответ

0 голосов
/ 04 февраля 2020

Я думаю, вам не нужно оперировать всеми событиями / слушателями, если вы просто хотите контролировать модальное событие hide / show. Используйте событие hide.bs.modal для модального. Это срабатывает каждый раз, когда вы пытаетесь закрыть модал. И возвращение true или false в этой функции включит или отключит модальное закрытие.

$(".modal").on("hide.bs.modal", function(){
    return false; // you should return true if you want to close dialog, otherwise you should return false 
                // so change 'false' in my example to your conditions
});
...