我使用Twitter引导模式作为向导窗口,并希望防止用户在模式外单击或按下escape时关闭它。相反,我希望它在用户按下完成按钮时关闭。我如何实现这个场景?
如果使用JavaScript,那么:
$('#myModal').modal({ backdrop: 'static', keyboard: false })
在show的情况下
$('#myModal').modal({backdrop: 'static', keyboard: false}, 'show');
或HTML:
<a data-controls-modal="your_div_id" data-backdrop="static" data-keyboard="false" href="#">
也工作,data-backdrop="static"点击出来,data-keyboard="false" Esc在你的div模式:
data-backdrop="static"
data-keyboard="false"
<div id="idModal" class="modal hide" data-backdrop="static" data-keyboard="false">
您可以使用下面的代码
$.fn.modal.prototype.constructor.Constructor.DEFAULTS.backdrop = 'static';
更改默认行为。
如果你需要关闭外面的点击,但允许按下退出
$('#myModal').modal({ backdrop: 'static', // This disable for click outside event keyboard: true // This for keyboard event })
你的代码是工作时,我点击出来的模态,但如果我使用html input字段内的模态体,然后将光标集中在输入上,然后按esc键,模态已关闭。 点击# EYZ0 < / p >
input
esc
只需将data-backdrop="static"和data-keyboard="false"属性添加到该模态。
如。
$('#modal').modal({backdrop: 'static', keyboard: false}, 'show');
<button class="btn btn-primary btn-lg" data-backdrop="static" data-keyboard="false" data-target="#myModal" data-toggle="modal">
<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 -->
我认为这个代码可以帮助你 # EYZ0 < / p >
下面的脚本适合我:
// prevent event when the modal is about to hide $('#myModal').on('hide.bs.modal', function (e) { e.preventDefault(); e.stopPropagation(); return false; });
我使用这些属性,它工作,data-keyboard="false" data-backdrop="static"
data-keyboard="false" data-backdrop="static"
你也可以在引导模型中使用直接。
<div class="modal fade" id="myModal" data-keyboard="false" data-backdrop="static">
如果你需要设置这个后模式,你可以使用@Nabid解决方案。然而,有时你仍然需要允许一些方法关闭模式。假设你有一个类为really-close-the-modal的按钮,它应该真正关闭模式,你可以使用下面的代码(jquery):
really-close-the-modal
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; });
这不是很好的代码设计,但它帮助我在一个情况下,模态显示加载器动画,直到ajax请求返回,只有那时我才能知道是否需要配置模态,以防止“隐式”关闭。您可以使用类似的设计来防止在仍在加载时关闭模式。
此代码将防止模式关闭,如果你点击模式之外
$(document).ready(function () { $('#myModal').modal({ backdrop: 'static', keyboard: false }) });
<button class='btn btn-danger fa fa-trash' data-toggle='modal' data-target='#deleteModal' data-backdrop='static' data-keyboard='false'></button>
只需将数据背景和数据键盘属性添加到打开的模型上的按钮。
你应该使用背景静态,键盘假。可以使用jQuery关闭按钮,也可以从modal html中删除。希望这对你有所帮助。
$('#MyModal').modal({ backdrop: 'static', keyboard: false }); $('#MyModal .close').css('display','none');