Элементы Checkbox (флажок) и Radio (переключатель) имеют два визуально разли_ чимых состояния: они могут быть либо установлены, либо сброшены. Пользова_ тель может изменить состояние такого элемента, щелкнув на нем. Переключате_ ли объединяются в группы связанных элементов, имеющих одинаковые значения HTML_атрибутов name. При установке одного из переключателей в группе другие переключатели сбрасываются. Флажки тоже часто составляют группы с одним значением атрибута name, и ссылаясь на них по имени, необходимо помнить, что объект, на который вы ссылаетесь, представляет собой массив элементов с одина_ ковыми именами. В примере 18.1 имеется три объекта Checkbox с именами extras, и мы можем ссылаться на массив из трех этих элементов следующим образом:
document.everything.extras
Для ссылки на отдельный флажок мы должны указать его индекс в массиве:
document.everything.extras[0] // Первый элемент формы с именем "extras"
У флажков и переключателей есть свойство checked. Это доступное для чтения и записи логическое значение определяет, установлен ли в данный момент эле_ мент. Свойство defaultChecked представляет собой доступное только для чтения логическое значение, содержащее значение HTML_атрибута checked; оно опреде_ ляет, должен ли элемент устанавливаться при первой загрузке страницы.
Флажки и переключатели сами не отображают какой_либо текст и обычно вы_ водятся вместе с прилегающим к ним HTML_текстом (или со связанным тегом
464 Глава 18. Формы и элементы форм
<label>). Это значит, что установка свойства value элемента Checkbox или Radio не изменяет внешнего вида элемента, как это происходит с элементами Button (кнопка), создаваемыми с помощью тега <input>. Данное свойство можно устано_ вить, но это изменит лишь строку, отсылаемую на веб_сервер при передаче дан_ ных формы.
Когда пользователь щелкает на флажке или переключателе, элемент вызывает свой обработчик onclick для уведомления JavaScript_программы об изменении своего состояния. Современные броузеры вызывают также для этих элементов обработчик onchange. Оба обработчика передают в основном одну и ту же инфор_ мацию, но обработчик onclick характеризуется лучшей переносимостью.