HTMLDialogElement: close() メソッド
        
        
          
                Baseline
                
                  Widely available
                
                
              
        
        
        
          
                
              
                
              
                
              
        
        
      
      This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2022年3月.
close() は HTMLDialogElement インターフェイスのメソッドで、このダイアログ (<dialog>) を閉じます。
引数としてオプションの文字列を渡すことができ、このダイアログの returnValue を更新します。
構文
js
close()
close(returnValue)
引数
- returnValue省略可
- 
文字列で、このダイアログの HTMLDialogElement.returnValueを更新する値を表します。
返値
なし (undefined)。
例
次の例は単純なボタンですが、クリックするとフォームを含む <dialog> を showModal() メソッドで開きます。
そこから X ボタンをクリックしてダイアログを閉じたり( HTMLDialogElement.close() メソッドで)、submit ボタンでフォームを送信したりすることができます。
html
<!-- フォームを含む単純なポップアップダイアログボックス -->
<dialog id="favDialog">
  <form method="dialog">
    <button id="close" aria-label="close" formnovalidate>X</button>
    <section>
      <p>
        <label for="favAnimal">好きな動物:</label>
        <select id="favAnimal" name="favAnimal">
          <option></option>
          <option>ブラインシュリンプ</option>
          <option>レッサーパンダ</option>
          <option>クモザル</option>
        </select>
      </p>
    </section>
    <menu>
      <button type="reset">リセット</button>
      <button type="submit">確認</button>
    </menu>
  </form>
</dialog>
<menu>
  <button id="updateDetails">詳細を更新</button>
</menu>
js
const updateButton = document.getElementById("updateDetails");
const closeButton = document.getElementById("close");
const dialog = document.getElementById("favDialog");
dialog.returnValue = "favAnimal";
function openCheck(dialog) {
  if (dialog.open) {
    console.log("Dialog open");
  } else {
    console.log("Dialog closed");
  }
}
// 更新ボタンでモーダルダイアログを開く
updateButton.addEventListener("click", () => {
  dialog.showModal();
  openCheck(dialog);
});
// フォームの閉じるボタンでダイアログボックスを閉じる
closeButton.addEventListener("click", () => {
  dialog.close("animalNotChosen");
  openCheck(dialog);
});
[X] ボタンが type="submit" であったなら、JavaScript を必要とせずにダイアログが閉じられたはずです。
フォームを送信すると、フォームのメソッドが dialog であれば、それが入った <dialog> を閉じるので、「閉じる」ボタンは必要ありません。
結果
仕様書
| Specification | 
|---|
| HTML> # dom-dialog-close-dev> | 
ブラウザーの互換性
Loading…
関連情報
- このインターフェイスを実装している HTML 要素: <dialog>