HTMLDialogElement: phương thức close()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022.

Phương thức close() của giao diện HTMLDialogElement đóng <dialog>. Có thể truyền một chuỗi tùy chọn làm đối số, cập nhật returnValue của hộp thoại.

Sự kiện close được kích hoạt sau khi hộp thoại đã đóng. Không giống như khi gọi HTMLDialogElement.requestClose(), thao tác đóng không thể bị hủy.

Cú pháp

js
close()
close(returnValue)

Tham số

returnValue Optional

Một chuỗi thay thế giá trị hiện tại của HTMLDialogElement.returnValue.

Giá trị trả về

Không có (undefined).

Ví dụ

Đóng một hộp thoại

Ví dụ sau đây hiển thị một nút bấm, khi được nhấp vào, sẽ mở một <dialog> thông qua phương thức showModal(). Từ đó bạn có thể nhấp vào nút Đóng để đóng hộp thoại (thông qua phương thức close()).

Nút Đóng đóng hộp thoại mà không có returnValue, trong khi nút Đóng kèm giá trị trả về đóng hộp thoại với một returnValue.

HTML

html
<dialog id="dialog">
  <button type="button" id="close">Đóng</button>
  <button type="button" id="close-w-value">Đóng kèm giá trị trả về</button>
</dialog>

<button id="open">Mở hộp thoại</button>

JavaScript

js
const dialog = document.getElementById("dialog");
const openButton = document.getElementById("open");
const closeButton = document.getElementById("close");
const closeWithValueButton = document.getElementById("close-w-value");

// Nút mở mở một hộp thoại modal
openButton.addEventListener("click", () => {
  // Đặt lại giá trị trả về
  dialog.returnValue = "";
  // Hiển thị hộp thoại
  dialog.showModal();
});

// Nút đóng đóng hộp thoại
closeButton.addEventListener("click", () => {
  dialog.close();
});

// Nút đóng đóng hộp thoại với giá trị trả về
closeWithValueButton.addEventListener("click", () => {
  dialog.close(`Đóng lúc ${new Date().toLocaleTimeString()}`);
});

// Nút đóng biểu mẫu đóng hộp thoại
dialog.addEventListener("close", () => {
  log(`Hộp thoại đã đóng. Giá trị trả về: "${dialog.returnValue}"`);
});

Note:

Bạn còn có thể tự động đóng một <dialog> bằng cách gửi một phần tử <form> với thuộc tính method="dialog".

Kết quả

Đặc tả kỹ thuật

Specification
HTML
# dom-dialog-close-dev

Tương thích trình duyệt

Xem thêm