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

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

Жанры

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
– нет.

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

Я граф. Книга XII

Дрейк Сириус
12. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я граф. Книга XII

Газлайтер. Том 3

Володин Григорий
3. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 3

Потомок бога

Решетов Евгений Валерьевич
1. Локки
Фантастика:
попаданцы
альтернативная история
аниме
сказочная фантастика
5.00
рейтинг книги
Потомок бога

Камень. Книга восьмая

Минин Станислав
8. Камень
Фантастика:
фэнтези
боевая фантастика
7.00
рейтинг книги
Камень. Книга восьмая

По осколкам твоего сердца

Джейн Анна
2. Хулиган и новенькая
Любовные романы:
современные любовные романы
5.56
рейтинг книги
По осколкам твоего сердца

Последний Паладин. Том 8

Саваровский Роман
8. Путь Паладина
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Последний Паладин. Том 8

Газлайтер. Том 15

Володин Григорий Григорьевич
15. История Телепата
Фантастика:
боевая фантастика
попаданцы
5.00
рейтинг книги
Газлайтер. Том 15

Вернувшийся: Посол. Том IV

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

Абордажник

Султанов Дмитрий Игоревич
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
8.05
рейтинг книги
Абордажник

Лекарь Империи 6

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

Гримуар темного лорда II

Грехов Тимофей
2. Гримуар темного лорда
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Гримуар темного лорда II

Неучтенный элемент. Том 10

NikL
10. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 10

Альфа-ноль. Компиляция. Книги 1-12

Каменистый Артем
Альфа-ноль
Фантастика:
рпг
попаданцы
фэнтези
5.00
рейтинг книги
Альфа-ноль. Компиляция. Книги 1-12

#Бояръ-Аниме. Газлайтер. Том 11

Володин Григорий Григорьевич
11. История Телепата
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
#Бояръ-Аниме. Газлайтер. Том 11