如果有人来谷歌试图弄清楚如何阻止某人关闭模态,请不要忘记在模式右上角还有一个需要删除的关闭按钮。
我使用了一些CSS来隐藏它:
#Modal .modal-header button.close { visibility: hidden; }
请注意,使用“display:none;”创建模态时会被覆盖,所以不要使用它。
您可以通过将此JavaScript添加到页面中来禁用后台的单击关闭行为并将其设置为所有模式的默认值(确保在加载jQuery和Bootstrap JS后执行):
$(function() { $.fn.modal.Constructor.DEFAULTS.backdrop = 'static'; });
您可以使用以下代码行设置模式弹出窗口的默认行为:
$.fn.modal.prototype.constructor.Constructor.DEFAULTS.backdrop = 'static';
正如D3VELOPER所说,以下代码解决了它:
$('#modal').removeData('bs.modal').modal({backdrop: 'static', keyboard: false});
我正在使用jquery和amp;引导和简单 removeData('modal') 不工作。
removeData('modal')
<button type="button" class="btn btn-info btn-md" id="myBtn3">Static Modal</button> <!-- Modal --> <div class="modal fade" id="myModal3" role="dialog"> <div class="modal-dialog"> <!-- Modal content--> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal">脳</button> <h4 class="modal-title">Static Backdrop</h4> </div> <div class="modal-body"> <p>You cannot click outside of this modal to close it.</p> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data- dismiss="modal">Close</button> </div> </div> </div> </div> <script> $("#myBtn3").click(function(){ $("#myModal3").modal({backdrop: "static"}); }); }); </script>
只需设置 backdrop 财产到 'static' 。
backdrop
'static'
$('#myModal').modal({ backdrop: 'static', keyboard: true })
您可能还想设置 keyboard 财产到 false 因为这可以通过按下来阻止模态被关闭 退出 键盘上的键。
keyboard
false
$('#myModal').modal({ backdrop: 'static', keyboard: false })
myModal 是包含模态内容的div的ID。
myModal
现在这样做非常容易。只需添加:
data-backdrop="static" data-keyboard="false"
在你的模态分频器中。
如果你想有条件地禁用 backdrop click closing 特征。您可以使用以下行来设置 backdrop 选项 static 在运行时。
backdrop click closing
static
的 Bootstrap v3.xx 强>
jQuery('#MyModal').data('bs.modal').options.backdrop = 'static';
的 Bootstrap v2.xx 强>
jQuery('#MyModal').data('modal').options.backdrop = 'static';
这将阻止已经实例化的模型 backdrop 选项设置为 false ( 默认行为 ),从结束。
好吧,这是你们中的一些人可能正在寻找的另一种解决方案(因为我......)
我的问题是类似的,模态框正在关闭,而我内部的iframe正在加载,所以我不得不禁用模式解除,直到Iframe完成加载,然后重新启用。
这里提出的解决方案不是100%工作。
我的解决方案是:
showLocationModal = function(loc){ var is_loading = true; if(is_loading === true) { is_loading = false; var $modal = $('#locationModal'); $modal.modal({show:true}); // prevent Modal to close before the iframe is loaded $modal.on("hide", function (e) { if(is_loading !== true) { e.preventDefault(); return false } }); // populate Modal $modal.find('.modal-body iframe').hide().attr('src', location.link).load(function(){ is_loading = true; }); }};
所以我暂时阻止Modal关闭:
$modal.on("hide", function (e) { if(is_loading !== true) { e.preventDefault(); return false } });
但是,在加载Iframe之后,将重新启用关闭的var is_loading。
您还可以在模态定义中包含这些属性:
<div class="modal hide fade" data-keyboard="false" data-backdrop="static">
要在模态显示后更新Bootstrap 4.1.3中的背景状态,我们使用以下行 引导模态,包装 插入。 插件存储库代码参考 。
$("#yourModalElement").data('bs.modal')._config.backdrop = (true : "static");
只需添加这两件事
它现在看起来像这样
<div class="modal fade bs-example-modal-sm" id="myModal" data-backdrop="static" data-keyboard="false" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" aria-hidden="true">
它将禁用转义按钮以及任何位置的单击并隐藏。
有点像@ AymKdn的答案,但这将允许您更改选项而无需重新初始化模态。
$('#myModal').data('modal').options.keyboard = false;
或者如果你需要做多个选项,那就是JavaScript with 在这里派上用场了!
with
with ($('#myModal').data("modal").options) { backdrop = 'static'; keyboard = false; }
如果模态已经打开,这些选项只会生效 下次 模态打开了。