Книга: Выразительный JavaScript
Поля select
Поля select
Поля select
похожи на радиокнопки – они также позволяют выбрать из нескольких вариантов. Но если радиокнопки позволяют нам контролировать раскладку вариантов, то вид поля <select>
определяет браузер.
У полей select
есть вариант, больше похожий на список галочек, чем на радиокнопки. При наличии атрибута multiple
тег <select>
позволит выбирать любое количество вариантов, а не один.
<select multiple>
<option>Блины</option>
<option>Запеканка</option>
<option>Мороженка </option>
</select>
В большинстве браузеров внешний вид поля будет отличаться от поля с единственным вариантом выбора, который обычно выглядит как выпадающее меню.
Атрибут size
тега <select>
используется для задания количества вариантов, которые видны одновременно – так вы можете влиять на внешний вид выпадушки. К примеру, назначив size“3”
, вы увидите три строки одновременно, безотносительно того, присутствует ли опция multiple
.
У каждого тега <option>
есть значение. Его можно определить атрибутом value
, но если он не задан, то значение тега определяет текст, находящийся внутри тега <option>..</option>
. Свойство value
элемента отражает текущий выбранный вариант. Для поля с возможностью выбора нескольких вариантов это свойство не особо нужно, т. к. в нём будет содержаться только один из нескольких выбранных вариантов.
К тегу <option>
поля <select>
можно получить доступ как к массивоподобному объекту через свойство options
. У каждого варианта есть свойство selected
, показывающее, выбран ли сейчас этот вариант. Свойство также можно менять, чтобы вариант становился выбранным или не выбранным.
Следующий пример извлекает выбранные значения из поля select
и использует их для создания двоичного числа из битов. Нажмите Ctrl (или Command на Маке), чтобы выбрать несколько значений сразу.
<select multiple>
<option value="1">0001</option>
<option value="2">0010</option>
<option value="4">0100</option>
<option value="8">1000</option>
</select> = <span>0</span>
<script>
var select = document.querySelector("select");
var output = document.querySelector("#output");
select.addEventListener("change", function() {
var number = 0;
for (var i = 0; i < select.options.length; i++) {
var option = select.options[i];
if (option.selected)
number += Number(option.value);
}
output.textContent = number;
});
</script>
- 18. Формы и поля форм
- Написание инструкций SELECT
- Поля
- 2.6. Термостабилизация режима каскада на биполярном транзисторе
- 1. Оператор Select – базовый оператор языка структурированных запросов
- 2.3.3 Selecting and Pasting
- Максимальное число дескрипторов для функции select
- Дополнительные свойства поля
- 12.4.4. Текстовые поля
- Software Selection and Installation
- Window Selector
- 2.8. Усилительный каскад на биполярном транзисторе с ОК