1
0

モーダルの切り替え

Last updated at Posted at 2021-11-17

暇を持て余す社内ニートその3(多分)

モーダルの切り替え:解説でなく自分用
閲覧になった方は参考のURLへ移動するか、検索しなおすことをお勧めします。

HTMLはパクリ
・モーダルは待機状態イメージ。

#やってること
モーダル1:message-modal1 を開いてOKすると
モーダル2:message-modal2 を開く
モーダル2をキャンセル(insert-message-cancel )したらモーダル1に戻る。

##HTMLの中

html
<div class="modal fade" id="message-modal1">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <h4 class="modal-title">モーダル1</h4>
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
      </div>
      <div class="modal-body">
        <a data-toggle="modal" href="#message-modal2" class="btn btn-primary">モーダルを開く</a>
      </div>
      <div class="modal-footer">
        <a href="#" data-dismiss="modal" class="btn">閉じる</a>
        <a href="#" class="btn btn-primary">ただのボタン</a>
      </div>
    </div>
  </div>
</div>
<div class="modal fade" id="message-modal">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <h4 class="modal-title">モーダル2</h4>
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
      </div>
      <div class="modal-body">
       モーダル
      </div>
      <div class="modal-footer">
        <a href="#" data-dismiss="modal" id=insert-message-cancel class="btn">閉じる</a>
<!--ここで data-dismiss="modal"を使っているが不要かも。-->
        <a href="#" class="btn btn-primary">ただのボタン</a>
      </div>
    </div>
  </div>
</div>

##jqueryの中身

jquery
<script>
/*モーダルの変更*/            
$(function(){
    changeModal('message-modal', 'message-modal2');
    function changeModal(beforeModal, afterModal) {
        $('#'+beforeModal).modal( 'hide' );
        $('#'+afterModal).modal('show');
    }
});

$('#insert-message-cancel').on('click', function () {
    changeModal('message-modal2', 'message-modal');
    function changeModal(beforeModal, afterModal) {
        $('#'+beforeModal).modal('hide');
        $('#'+afterModal).modal('show');
    }
}); 
<script>

♯参考資料
・モーダルから別のモーダルを表示する
https://qiita.com/tomlaw/items/1fd8edc9ca1522ad270e
参考にしたけどうまく使えそうになかった。
bootstrapの思想としては論外だけど、スクロール意識しないなら以下で十分だった。

jquery
/*モーダルの上書き*/            
$(function(){
   $('#message-modal2').modal('show')
});

・Bootstrapでモーダルを複数重ねて表示する
(課題があって解決したらしいけど、応用できずにいる。)
https://slash-mochi.net/?p=3041

モーダル複数サンプル(ようわからん)
http://yebisupress.dac.co.jp/2018/06/11/tips_when_using_bootstrap_multiple_modal_overaly/

1
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0