私はTwitter Bootstrapモーダルをウィザードウィンドウとして使用していますが、モーダルの外側をクリックしたとき、またはEscキーを押したときにユーザーがウィンドウを閉じないようにしたいと考えています。代わりに、ユーザーが終了ボタンを押したときに閉じられるようにします。どうすればこのシナリオを達成できますか?
JavaScriptを使用している場合:
$('#myModal').modal({
backdrop: 'static',
keyboard: false
})
そしてHTMLでは:
<a data-controls-modal="your_div_id" data-backdrop="static" data-keyboard="false" href="#">
あなたのdiv modalでdata-backdrop="static"
をクリックしてdata-keyboard="false"
をEscにします。
<div id="idModal" class="modal hide" data-backdrop="static" data-keyboard="false">
ブートストラップモーダルでDirectを使うこともできます。
<div class="modal fade" id="myModal" data-keyboard="false" data-backdrop="static">
そのモーダルに
data-backdrop="static"
とdata-keyboard="false"
属性を追加するだけです。
例えば。
<a data-controls-modal="your_div_id" data-backdrop="static" data-keyboard="false" href="#">
あなたは以下のコードを使用することができます
$.fn.modal.prototype.constructor.Constructor.DEFAULTS.backdrop = 'static';
デフォルトの動作を変更します。
私はこれらの属性を使います、そしてそれはうまくいきます、data-keyboard="false" data-backdrop="static"
jQuery('#modal_ajax').modal('show', {backdrop: 'static', keyboard: false});
<button class="btn btn-primary btn-lg" data-backdrop="static" data-keyboard="false" data-target="#myModal" data-toggle="modal">
このコードは、モーダルの外側をクリックした場合にモーダルが閉じないようにします。
$(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>
モデルが開いているボタンにdata-backdropとdata-keyboard属性を追加するだけです。
外側のクリックを無効にし、エスケープを有効にする必要がある場合
$( '#myModal')。modal({ backdrop: 'static'、//クリック外イベント無効 keyboard:true //キーボードイベント有効 } )
次のスクリプトは私のために働きました:
// prevent event when the modal is about to hide
$('#myModal').on('hide.bs.modal', function (e) {
e.preventDefault();
e.stopPropagation();
return false;
});
背景はstatic、キーボードはfalseにしてください。また、jQueryを使用して閉じるボタンをオフにすることも、モーダルHTMLから削除することもできます。この助けを願っています。
$('#MyModal').modal({ backdrop: 'static', keyboard: false });
$('#MyModal .close').css('display','none');
モーダルの外側をクリックしてもコードは機能しますが、modal-body内でhtmlinput
fieldを使用する場合は、カーソルをその入力にフォーカスし、esc
キーを押します。 。クリック ここ
これを設定する必要がある場合は、 - /モーダルが表示されている場合は、@ Nabidソリューションを使用できます。ただし、 some メソッドにモーダルを閉じることを許可する必要がある場合もあります。 really-close-the-modal
クラスのボタンがあり、それがモーダルを本当に閉じるはずであると仮定すると、このコードを使うことができます(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;
});
これは本当にいいコードデザインではありませんが、ローダアニメーションでモーダルが表示される状況で、ajaxリクエストが返されるまで助けになりました。閉鎖。ロード中にモーダルが閉じないようにするために、同様のデザインを使用できます。
<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 -->
私はこのcodepenがあなたを助けることができると思います モーダルクローズCSSとブートストラップを防ぎます