2016-08-04 5 views
4

モーダルが開いている間、背景を「静的」に変更できますか?オープンブートストラップモーダルのために背景を静的に変更

私はフォーム提出ボタン付きのモーダルを持っています。このボタンをクリックすると、私のモーダルのローディングが表示されます。これは、背景を静的に変更したいときです。

$('#myModal').modal({backdrop: 'static', keyboard: false})を試しましたが、私はまだ背景をクリックするか、エスケープボタンを使用してモーダルを閉じることができます。

2番目のステップはバックグラウンドをtrueに戻す必要がありますが、最初はスタティックに設定する必要があるため、まだ試していません。

私はモーダルショーで背景を静的に設定できましたが、これを避けてサブミット後に変更したいと思います。

アイデア?

+0

私はあなたのユースケースを理解していないかもしれませんが、スタティックとキーボードは偽ですか?なぜそれが開いている間にそれを変更する必要がありますか? – WillardSolutions

+0

他のすべてのモーダルはエスケープボタンで閉じたり、モーダルの外側をクリックすることができます。私はユーザーが他の人のように閉じることができないモーダルを1つだけ持ちたくないので、他のモーダルをすべて変更しないでください。これは特別なケースです。送信時にはモーダルでスピナーを表示し、スピナーがアクティブな間はモーダルを閉じないようにします。 – Exik

+0

[開いている間にブートストラップモードの背景設定を変更する]の可能な複製(https://stackoverflow.com/questions/41421083/change-bootstrap-modal-backdrop-settings-while-open) –

答えて

3

私はこれを解決しました。たぶんそれは最善の解決策ではないかもしれませんが、私の特別なケースのために働いています。

提出時にスピナーをロードした直後に$('#myModal').off('click');を追加しました。これにより、マウスクリックでモーダルを閉じることができなくなります。

escapeボタンを無効にすることに問題がありました。これは、ユーザーがこのボタンを押したときにブラウザがページの読み込みを停止するためです。だから私は、このコードでフォームのロックを解除するために、スピナーを非表示にすることを決めた:

$(document).on('keydown',function(e) { 
    if (e.keyCode == 27) { 
    $('#myLoadingSpinner').hide(); 
    } 
}); 


編集:私はkeyboard = falseためにも、これを試してみました

$('#myModal').data('bs.modal').options.backdrop = 'static'; 

、それ: 私は背景のための別の解決策を見つけました動作しません。

関連する問題