Чтение онлайн

на главную - закладки

Жанры

JavaScript. Подробное руководство, 6-е издание
Шрифт:

В некотором смысле элемент с возможностью множественного выбора похож на набор флажков, а элемент без такой возможности - на набор радиокнопок. Однако варианты выбора, отображаемые элементом

Select
, не являются кнопками-переключателями: они определяются с помощью тега
<option>.
Элемент
Select
определяет свойство
options
, которое является объектом, подобным массиву, хранящим объекты
Option
.

Когда пользователь выбирает тот или иной вариант или отменяет выбор, элемент

Select
вызывает свой обработчик событий
onchange
. Для элементов
Select
с возможностью выбора единственного варианта, доступное только для чтения свойство
selectedlndex
определяет выбранный в данный момент вариант. Для элементов
Select
с возможностью множественного выбора одного свойства
selectedlndex
недостаточно для представления полного набора выбранных вариантов. В этом случае для определения выбранных вариантов следует в цикле перебрать элементы массива
options[]
и проверить значения свойства
selected
каждого объекта
Option
.

Кроме свойства

selected
у каждого объекта
Option
есть свойство
text
, задающее строку текста, которая отображается в элементе
Select
для данного варианта. Используя это свойство, можно изменить видимый пользователем текст. Свойство
value
представляет доступную для чтения и записи строку текста, который отсылается на веб-сервер при передаче данных формы. Даже если вы пишете исключительно клиентскую программу и ваши формы никуда не отправляются, свойство
value
(или соответствующий ей HTML-атрибут
value
) можно использовать для хранения данных, которые потребуются после выбора пользователем определенного варианта. Обратите внимание, что элемент
Option
не определяет связанных с формой обработчиков событий; используйте вместо этого обработчик
onchange
соответствующего элемента
Select
.

Помимо задания свойства

text
объектов
Option
имеются способы динамического изменения выводимых в элементе
Select
вариантов с помощью особых возможностей свойства
options
, которые ведут свое существование с самого начала появления поддержки клиентских сценариев. Можно обрезать массив элементов
Option
, установив свойство
options.length
равным требуемому количеству вариантов, или удалить все объекты
Option
, установив значение свойства
options.length
равным нулю. Можно удалять отдельные объекты
Option
из элемента
Select
, присваивая элементам массива
options[]
значение null. В этом случае удаляются соответствующие объекты
Option
, а все элементы, расположенные в массиве
options[]
правее, автоматически сдвигаются влево, заполняя опустевшее место.

Чтобы добавить в элемент

Select
новый вариант, можно создать его с помощью конструктора
Option
и добавить в конец массива
options[],
как показано ниже:

// Создать новый объект Option

var zaire = new Option("Zaire", // Свойство text

"zaire", // Свойство value

false, // Свойство defaultSelected

false); // Свойство selected

// Отобразить вариант в элементе Select, добавив его в конец массива
options:

var countries = document.address.country;

// Получить объект Select

countries.options[countries.options.length] = zaire;

Имейте в виду, что эти специальные возможности элемента

Select
пришли к нам из прошлых времен. Вставку и удаление вариантов можно реализовать более очевидным способом, воспользовавшись стандартными методами
Document.createElement, Node.insertBefore, Node.removeChild
и другими.

15.10. Другие особенности документов

Эта глава начиналась с утверждения, что она является одной из наиболее важных в книге. Она также по необходимости оказалась одной из наиболее длинных. Этот раздел завершает главу описанием некоторых особенностей объекта

Document
.

15.10.1. Свойства объекта Document

В этой главе уже были представлены некоторые свойства объекта

Document
, такие как
body, documentElement
и
forms
, ссылающиеся на специальные элементы документа. Кроме них документы определяют еще несколько свойств, представляющих интерес:

cookie

Специальное свойство, позволяющее JavaScript-программам читать и писать cookie-файлы. Это свойство рассматривается в главе 20.

domain

Свойство, которое позволяет доверяющим друг другу веб-серверам, принадлежащим одному домену, ослаблять ограничения, связанные с политикой общего происхождения, на взаимодействие между их веб-страницами (подробности см. в разделе 13.6.2.1).

lastModified

Строка, содержащая дату последнего изменения документа.

location

Это свойство ссылается на тот же объект

Location
, что и свойство
location
объекта
Window
.

referrer

URL-адрес документа, содержащего ссылку (если таковая существует), которая привела броузер к текущему документу. Это свойство имеет то же значение, что и HTTP-заголовок Referer, но записывается с двумя буквами r.

title

Текст между тегами

<title>
и
</title>
данного документа.

URL

Свойство

URL
документа является строкой, доступной только для чтения, а не объектом
Location
. Значение этого свойства совпадает с начальным значением свойства
location.href
, но, в отличие от объекта
Location
, не является динамическим. Если пользователь выполнит переход, указав новый идентификатор фрагмента внутри документа, то свойство
location.href
изменится, а свойство
document.URL
– нет.

Поделиться:
Популярные книги

Товарищ "Чума"

lanpirot
1. Товарищ "Чума"
Фантастика:
попаданцы
альтернативная история
4.00
рейтинг книги
Товарищ Чума

Матабар. II

Клеванский Кирилл Сергеевич
2. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Матабар. II

Вернувшийся: Первые шаги. Том II

Vector
2. Вернувшийся
Фантастика:
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Вернувшийся: Первые шаги. Том II

Печать Пожирателя 3

Соломенный Илья
3. Пожиратель
Фантастика:
городское фэнтези
аниме
сказочная фантастика
фэнтези
попаданцы
5.00
рейтинг книги
Печать Пожирателя 3

Кодекс Охотника. Книга X

Винокуров Юрий
10. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
6.25
рейтинг книги
Кодекс Охотника. Книга X

Черный Маг Императора 7 (CИ)

Герда Александр
7. Черный маг императора
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Черный Маг Императора 7 (CИ)

Мальвиль

Мерль Робер
Фантастика:
социально-философская фантастика
научная фантастика
альтернативная история
8.29
рейтинг книги
Мальвиль

Эволюционер из трущоб. Том 10

Панарин Антон
10. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эволюционер из трущоб. Том 10

Бастард Императора. Том 13

Орлов Андрей Юрьевич
13. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Бастард Императора. Том 13

Александр Агренев. Трилогия

Кулаков Алексей Иванович
Александр Агренев
Фантастика:
альтернативная история
9.17
рейтинг книги
Александр Агренев. Трилогия

Вернувшийся: Корпорация. Том III

Vector
3. Вернувшийся
Фантастика:
космическая фантастика
боевая фантастика
рпг
5.00
рейтинг книги
Вернувшийся: Корпорация. Том III

Ваше Сиятельство 8

Моури Эрли
8. Ваше Сиятельство
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Ваше Сиятельство 8

Изгой Проклятого Клана. Том 6

Пламенев Владимир
6. Изгой
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Изгой Проклятого Клана. Том 6

Сильнейший ученик. Том 2

Ткачев Андрей Юрьевич
2. Пробуждение крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сильнейший ученик. Том 2