Spec-Zone.ru › Web APIs

HTMLSelectElement: свойство selectedOptions

Базовая Широко поддерживается

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

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Только для чтения HTMLSelectElement свойство selectedOptions содержит список элементов <option>, которые в данный момент выбраны в элементе <select>. Список выбранных опций является объектом HTMLCollection с одной записью на каждую выбранную опцию.

Опция считается выбранной, если у неё есть атрибут HTMLOptionElement.selected.

Значение

HTMLCollection, который перечисляет все выбранные в данный момент HTMLOptionElement, являющиеся либо дочерними элементами HTMLSelectElement, либо дочерними элементами HTMLOptGroupElement внутри элемента <select>.

Другими словами, любая опция, содержащаяся в элементе <select>, может быть частью результатов, но группы опций в список не включаются.

Если опции не выбраны, коллекция пуста и возвращает length равное 0.

Примеры

В этом примере используется элемент <select> с несколькими опциями, позволяющий пользователю заказывать различные продукты.

HTML

HTML, создающий поле выбора и элементы <option>, представляющие каждый из вариантов продуктов, выглядит так:

<label for="foods">What do you want to eat?</label><br />
<select id="foods" name="foods" size="7" multiple>
  <option value="1">Burrito</option>
  <option value="2">Cheeseburger</option>
  <option value="3">Double Bacon Burger Supreme</option>
  <option value="4">Pepperoni Pizza</option>
  <option value="5">Taco</option>
</select>
<br />
<button name="order" id="order">Order Now</button>
<p id="output"></p>

Элемент <select> настроен на возможность выбора нескольких пунктов, и он имеет высоту 7 строк. Обратите также внимание на кнопку <button>, которая служит для получения HTMLCollection выбранных элементов с использованием свойства selected.

JavaScript

Код JavaScript, устанавливающий обработчик событий для кнопки, а также сам обработчик, выглядит следующим образом:

let orderButton = document.getElementById("order");
let itemList = document.getElementById("foods");
let outputBox = document.getElementById("output");

orderButton.addEventListener(
  "click",
  () => {
    let collection = itemList.selectedOptions;
    let output = "";

    for (let i = 0; i < collection.length; i++) {
      if (output === "") {
        output = "Your order for the following items has been placed: ";
      }
      output += collection[i].label;

      if (i === collection.length - 2 && collection.length < 3) {
        output += " and ";
      } else if (i < collection.length - 2) {
        output += ", ";
      } else if (i === collection.length - 2) {
        output += ", and ";
      }
    }

    if (output === "") {
      output = "You didn't order anything!";
    }

    outputBox.textContent = output;
  },
  false,
);

Этот скрипт устанавливает обработчик события click на кнопку «Заказать». При нажатии обработчик получает список выбранных опций с помощью selectedOptions, затем перебирает опции в списке. Строка конструируется для отображения заказанных товаров с логикой построения списка в соответствии с правилами грамматики русского языка (включая использование запятой в списке).

Результат

Результат выполнения выглядит следующим образом:

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

Спецификация
HTML
# dom-select-selectedoptions-dev

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
selectedOptions 19 12 26 9 6 25 26 10.1 6 1.5 4.4

См. также

  • Списки (меню)

© 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/HTMLSelectElement/selectedOptions

Spec-Zone.ru

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