HTMLDialogElement: thuộc tính returnValue

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.

Thuộc tính returnValue của giao diện HTMLDialogElement là một chuỗi đại diện cho giá trị trả về cho một phần tử <dialog> khi nó được đóng. Bạn có thể thiết lập giá trị trực tiếp (dialog.returnValue = "result") hoặc bằng cách cung cấp giá trị dưới dạng đối số chuỗi cho close() hoặc requestClose().

Giá trị

Một chuỗi đại diện cho returnValue của hộp thoại. Mặc định là một chuỗi rỗng ("").

Ví dụ

Kiểm tra giá trị trả về

Ví dụ sau đây hiển thị một nút bấm để mở một hộp thoại. Hộp thoại hỏi người dùng có muốn chấp nhận lời nhắc Điều khoản Dịch vụ hay không.

Hộp thoại chứa các nút "Chấp nhận" hoặc "Từ chối": khi người dùng nhấp vào một trong các nút, trình xử lý nhấp của nút đó sẽ đóng hộp thoại, truyền lựa chọn của họ vào hàm close(). Điều này gán lựa chọn cho thuộc tính returnValue của hộp thoại.

Trong trình xử lý sự kiện close của hộp thoại, ví dụ cập nhật văn bản trạng thái của trang chính để ghi lại returnValue.

Nếu người dùng đóng hộp thoại mà không nhấp vào một nút (ví dụ: bằng cách nhấn phím Esc), thì giá trị trả về không được thiết lập.

HTML

html
<dialog id="dialog">
  <p>Bạn có đồng ý với Điều khoản Dịch vụ (liên kết) không?</p>
  <button id="decline" value="declined">Từ chối</button>
  <button id="accept" value="accepted">Chấp nhận</button>
</dialog>
<button id="open">Mở hộp thoại</button>

JavaScript

js
const dialog = document.getElementById("dialog");
const openButton = document.getElementById("open");
const declineButton = document.getElementById("decline");
const acceptButton = document.getElementById("accept");

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

function closeDialog(event) {
  const button = event.target;
  dialog.close(button.value);
}

function updateReturnValue() {
  log(`Giá trị trả về: "${dialog.returnValue}"`);
}

declineButton.addEventListener("click", closeDialog);
acceptButton.addEventListener("click", closeDialog);

dialog.addEventListener("close", updateReturnValue);

Kết quả

Nhấp "Mở hộp thoại", sau đó chọn nút "Chấp nhận" hoặc "Từ chối" trong hộp thoại, hoặc đóng hộp thoại bằng cách nhấn phím Esc. Quan sát các cập nhật trạng thái khác nhau.

Đặc tả kỹ thuật

Specification
HTML
# dom-dialog-returnvalue-dev

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

Xem thêm