このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

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

ブラウザーの互換性

関連情報

  • このインターフェイスを実装している HTML 要素: <dialog>