Zapobiec zniknięciu modalu Bootstrap podczas klikania na zewnątrz lub naciskania escape?
Używam modalu Twitter Bootstrap jako okna kreatora i chciałbym, aby użytkownik nie zamknął go po kliknięciu poza modalem lub po naciśnięciu escape. Zamiast tego chcę, aby została zamknięta, gdy użytkownik naciśnie przycisk Zakończ. Jak mogę osiągnąć ten scenariusz?
13 answers
If using JavaScript then:
$('#myModal').modal({
backdrop: 'static',
keyboard: false
})
I jeśli HTML:
<a data-controls-modal="your_div_id" data-backdrop="static" data-keyboard="false" href="#">
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-05 12:01:07
Działa również, data-backdrop="static"
aby kliknąć i data-keyboard="false"
aby Esc w modalu div:
<div id="idModal" class="modal hide" data-backdrop="static" data-keyboard="false">
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-07 16:07:12
Wystarczy dodać
data-backdrop="static"
idata-keyboard="false"
atrybuty do tego modalu.
Np.
<a data-controls-modal="your_div_id" data-backdrop="static" data-keyboard="false" href="#">
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-25 07:27:16
Możesz również użyć Direct w modelu bootstrap.
<div class="modal fade" id="myModal" data-keyboard="false" data-backdrop="static">
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-12 10:11:16
Możesz użyć poniższego kodu
$.fn.modal.prototype.constructor.Constructor.DEFAULTS.backdrop = 'static';
Aby zmienić domyślne zachowanie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-19 21:12:05
jQuery('#modal_ajax').modal('show', {backdrop: 'static', keyboard: false});
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-09-01 06:35:09
Używam tych atrybutów i działa, data-keyboard="false" data-backdrop="static"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-10-04 20:08:22
<button class="btn btn-primary btn-lg" data-backdrop="static" data-keyboard="false" data-target="#myModal" data-toggle="modal">
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-26 06:14:18
Jeśli trzeba wyłączyć klikanie na zewnątrz, ale włączyć naciśnięcie escape
$('#myModal').modal({ backdrop: 'static', // This disable for click outside event keyboard: true // This for keyboard event })
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-04 04:56:07
Zadziałał dla mnie następujący skrypt:
// prevent event when the modal is about to hide
$('#myModal').on('hide.bs.modal', function (e) {
e.preventDefault();
e.stopPropagation();
return false;
});
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-15 23:16:10
Twój kod działa, gdy klikam na modal, ale jeśli używam html input
pole wewnątrz modal-body następnie skoncentruj kursor na tym wejściu, a następnie naciśnij esc
Klucz modalny został zamknięty.
Kliknij tutaj
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-13 06:23:47
<div class="modal show">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Modal title</h4>
</div>
<div class="modal-body">
<p>One fine body…</p>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
Myślę, że ten codepen może Ci pomóc prevent modal close css and bootstrap
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-22 07:36:07
Jeśli chcesz skonfigurować to Po wyświetleniu modal, możesz użyć @nabid solution. Jednak czasami nadal musisz zezwolić na jakąś metodę , aby zamknąć modal. Zakładając, że masz przycisk z klasą really-close-the-modal
, który powinien naprawdę zamknąć modal, możesz użyć tego kodu (jquery):
var closeButtonClicked = false;
$('.really-close-the-modal').on('click', function () {
closeButtonClicked = true;
});
$('#myModal').on('hide.bs.modal', function (e) {
if (!closeButtonClicked) {
e.preventDefault();
e.stopPropagation();
return false;
}
closeButtonClicked = false;
});
To nie jest naprawdę ładny projekt kodu, ale pomógł mi w sytuacji, gdy modal został pokazany z animacją loadera, dopóki nie powróciło żądanie ajax i dopiero wtedy mogłem wiedzieć, czy modal musiał być skonfigurowany, aby zapobiec" niejawnemu " zamknięciu. Możesz użyć podobnej konstrukcji, aby zapobiec zamknięciu modalu podczas jego ładowania.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-06 08:36:42