jQuery不要!BootstrapモーダルをJavaScriptだけで閉じる

2024-04-02

jQuery を使って Bootstrap モーダルを閉じる

jQuery を使用すると、JavaScript コードを簡単に記述して、モーダルウィンドウを開閉したり、その他の操作を行うことができます。

モーダルウィンドウを閉じる方法はいくつかあります。

data-dismiss 属性を使用する

Bootstrap モーダルウィンドウには、data-dismiss="modal" 属性を設定できます。 この属性が設定された要素をクリックすると、モーダルウィンドウが閉じます。

<button type="button" class="btn btn-primary" data-dismiss="modal">閉じる</button>

modal() メソッドを使用する

jQuery を使用して、modal() メソッドを呼び出すことで、モーダルウィンドウを閉じることができます。

$('.modal').modal('hide');

backdrop オプションを使用する

モーダルウィンドウの背景部分をクリックすると、モーダルウィンドウが閉じないように設定できます。

$('.modal').modal({
  backdrop: 'static'
});

イベントハンドラを使用する

モーダルウィンドウの hidden.bs.modal イベントにイベントハンドラを設定することで、モーダルウィンドウが閉じられた後に処理を実行できます。

$('.modal').on('hidden.bs.modal', function () {
  // ここに処理を記述
});

以下の例では、data-dismiss 属性と modal() メソッドを使用して、モーダルウィンドウを閉じる方法を示します。

<div class="modal fade" id="myModal">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title">モーダルタイトル</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        ここにモーダルウィンドウの内容を記述
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-secondary" data-dismiss="modal">閉じる</button>
        <button type="button" class="btn btn-primary">保存</button>
      </div>
    </div>
  </div>
</div>

<button type="button" class="btn btn-primary" onclick="openModal()">モーダルウィンドウを開く</button>

<script>
function openModal() {
  $('#myModal').modal('show');
}

// モーダルウィンドウが閉じられた後の処理
$('.modal').on('hidden.bs.modal', function () {
  // ここに処理を記述
});
</script>

上記の解説を参考に、ご自身の目的に合わせてコードを記述してみてください。




HTML

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Bootstrap モーダルサンプル</title>

  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqx61gVWgIGe33WNl41i6zK130vTwwjzeEaruP+XY9q6331208YcKG0" crossorigin="anonymous">

  <script src="https://code.jquery.com/jquery-3.5.1.min.js" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/7eB7ggNWBcuY89VuI=" crossorigin="anonymous"></script>

  <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBkO6S/9dAykX8n0IC3aWxKK/i51Y+T4x8cHcO3evm" crossorigin="anonymous"></script>
</head>
<body>
  <div class="container">
    <h1>Bootstrap モーダルサンプル</h1>

    <button type="button" class="btn btn-primary" id="open-modal-button">モーダルウィンドウを開く</button>

    <div class="modal fade" id="myModal">
      <div class="modal-dialog">
        <div class="modal-content">
          <div class="modal-header">
            <h5 class="modal-title">モーダルタイトル</h5>
            <button type="button" class="close" data-dismiss="modal" aria-label="Close">
              <span aria-hidden="true">&times;</span>
            </button>
          </div>
          <div class="modal-body">
            ここにモーダルウィンドウの内容を記述
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-secondary" data-dismiss="modal">閉じる</button>
            <button type="button" class="btn btn-primary">保存</button>
          </div>
        </div>
      </div>
    </div>
  </div>

  <script>
  $(function() {
    // モーダルウィンドウを開くボタンのクリックイベント
    $('#open-modal-button').click(function() {
      $('#myModal').modal('show');
    });

    // モーダルウィンドウが閉じられた後の処理
    $('.modal').on('hidden.bs.modal', function () {
      // ここに処理を記述
    });
  });
  </script>
</body>
</html>

動作

上記のコードを実行すると、以下のようになります。

  1. "モーダルウィンドウを開く" ボタンをクリックすると、モーダルウィンドウが表示されます。
  2. モーダルウィンドウが閉じられた後、hidden.bs.modal イベントが発生し、設定した処理が実行されます。

上記のサンプルコードは基本的なものです。

ご自身の目的に合わせて、コードを編集したり、拡張したりすることができます。




Bootstrap モーダルを閉じるその他の方法

以下の方法でも、Bootstrap モーダルを閉じることができます。

JavaScript の document.getElementById() メソッドを使用する

var modal = document.getElementById('myModal');
modal.style.display = 'none';

Bootstrap の modal クラスを使用する

var modal = $('.modal');
modal.modal('hide');

data-dismiss 属性と JavaScript の click() メソッドを使用する

<button type="button" class="btn btn-secondary" data-dismiss="modal">閉じる</button>
$('.modal').click(function() {
  $(this).modal('hide');
});

CSS を使用

.modal {
  display: none;
}

jQuery を使用している場合は、modal() メソッドを使用するのが最も簡単です。

data-dismiss 属性を使用する方法は、シンプルな方法です。


jquery twitter-bootstrap modal-dialog


チェックボックスのラベル操作もおまかせ!jQueryでスマートなWeb開発

このチュートリアルでは、jQuery を使って チェックボックス が選択されたときに、対応する ラベル を操作する方法を説明します。主に以下の3つの方法をご紹介します。for 属性の値の一致:filter() メソッドと id 属性:親要素からの辿り上がり:...


document.execCommand() で選択されたテキストを取得する方法

JavaScriptとjQueryを使って、ウェブページ上のテキストボックス、テキストエリア、またはその他の要素で選択されたテキストを取得する方法について解説します。方法JavaScriptのみ以下のコードは、JavaScriptのみを使用して選択されたテキストを取得する方法を示しています。...


ASP.NET MVCで動的キャッシュを制御:VaryByHeaderとCustomCacheKeyを活用

キャッシュ無効化にはいくつかの方法がありますが、最も簡単なのは、OutputCacheAttribute 属性を使用する方法です。この属性は、アクションまたはコントローラーレベルで適用でき、キャッシュポリシーを詳細に制御できます。OutputCacheAttribute を使用するには、以下の手順に従います。...


JavaScript、jQuery、Ajax を駆使!GET リクエストでパラメータを自在に操る

このチュートリアルでは、JavaScript、jQuery、Ajax を使って、GET リクエストでサーバーにパラメータを渡す方法を解説します。GET リクエストとパラメータGET リクエストは、サーバーからリソースを取得するために使用される HTTP リクエストメソッドです。パラメータは、リクエストに追加情報を含めるために使用されます。GET リクエストの場合、パラメータは URL にクエリ文字列として追加されます。...


JavaScript、jQuery、および配列で条件に一致するオブジェクトのインデックスを取得する方法

このチュートリアルを理解するには、次の知識が必要です。JavaScript の基本構文配列の操作方法jQuery の基本構文 (オプション)条件に一致するオブジェクトのインデックスを取得するには、次の方法を使用できます。JavaScript の indexOf() メソッド...