Spec-Zone.ru › Web APIs

HTMLDialogElement: свойство returnValue

Базовая Широко доступная

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с марта 2022 года.

  • Узнать больше
  • Показать полную совместимость
  • Отправить отзыв

Свойство returnValue интерфейса HTMLDialogElement получает или устанавливает возвращаемое значение для <dialog>, обычно для указания, какую кнопку пользователь нажал для его закрытия.

Значение

Строка, представляющая returnValue диалога.

Примеры

В следующем примере отображается кнопка для открытия <dialog>, содержащего форму, с помощью метода showModal(). Скрипт присваивает returnValue начальное значение initialValue. Кнопка подтверждения (confirmBtn) отправляет форму с валидацией, а кнопка "X" отправляет форму без валидации. Отправка формы с method="dialog" закрывает диалог и устанавливает возвращаемое значение в value, если таковое имеется, элементов button или input из type=submit. Кнопка сброса имеет обработчик событий, который закрывает диалог; она не влияет на returnValue. То же самое относится и к закрытию диалога клавишей Esc.

<!-- Simple pop-up dialog box containing a form -->
<dialog id="favDialog">
  <form method="dialog">
    <input
      type="submit"
      aria-label="close"
      value="X"
      name="x-button"
      formnovalidate />
    <p>
      <label
        >Favorite animal:
        <select name="favAnimal" required>
          <option></option>
          <option>Brine shrimp</option>
          <option>Red panda</option>
          <option>Spider monkey</option>
        </select>
      </label>
    </p>
    <menu>
      <button type="reset" value="resetBtn">Reset</button>
      <button type="submit" value="confirmBtn">Confirm</button>
    </menu>
  </form>
</dialog>

<p>
  <button id="openDialog">Open Dialog</button>
</p>
<p id="text"></p>

<script>
  (() => {
    const openDialog = document.getElementById("openDialog");
    const dialog = document.getElementById("favDialog");
    const text = document.getElementById("text");
    const reset = document.querySelector("[type='reset']");
    dialog.returnValue = "initialValue";

    function openCheck(dialog) {
      if (dialog.open) {
        text.innerText = "Dialog open";
      } else {
        text.innerText = "Dialog closed";
      }
    }

    function handleUserInput(returnValue) {
      if (!returnValue) {
        text.innerText += ". There was no return value";
      } else {
        text.innerText += ". Return value: " + returnValue;
      }
    }

    // "Open Dialog" button opens the <dialog> modally
    openDialog.addEventListener("click", () => {
      dialog.showModal();
      openCheck(dialog);
      handleUserInput(dialog.returnValue);
    });

    reset.addEventListener("click", () => {
      dialog.close();
    });

    // when the dialog is closed, no matter how it is closed
    dialog.addEventListener("close", () => {
      openCheck(dialog);
      handleUserInput(dialog.returnValue);
    });
  })();
</script>
<style>
  [aria-label="close"] {
    appearance: none;
    border-radius: 50%;
    border: 1px solid;
    float: right;
  }
</style>

Результат

Спецификации

Спецификация
HTML
# dom-dialog-returnvalue-dev

Совместимость браузеров

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari на IOS Samsung Internet WebView Android
returnValue 37 79 98 24 15.4 37 98 24 15.4 3.0 37

См. также

  • Элемент HTML, реализующий этот интерфейс: <dialog>.

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/HTMLDialogElement/returnValue

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API