лючателей,
входящих в группу. (Web-браузер считает, что все переключатели с одним и тем
же значением атрибута name входят в одну группу.) При выборе посетителем пе-
реключателя в группе Web-браузер выключает переключатель, который был выб-
ран в группе ранее (если таковой вообще был в группе), и в выбранный посети-
телем переключатель помещает черную точку, которой обозначается установленный
в данный момент переключатель. (В отличие от установленного флажка, повторный
выбор установленного переключателя не снимает с него отметку.)
Проверка выбора группы переключателей перед
передачей результатов формы
Web-браузер позволяет посетителю сайта выбирать только один переключатель
из группы переключателей с одним и тем же значением атрибута name. Поэтому,
144 Глава 3. HTML-формы
для проверки выбора переключателя в группе переключателей нет необходимос-
ти пользоваться JavaScript-сценарием. Тем не менее, Web-браузер не заставляет
посетителя выбирать хотя бы один переключатель в каждой группе переключате-
лей. Следовательно, необходимо написать функцию проверки, которая бы прове-
ряла количество выбранных переключателей в каждой группе, которые посети-
тель не должен оставлять пустыми.
Предположим, например, что на форме находятся две группы переключате-
лей, как показано на рис. 3.9.
I. • т - г к . У. . • . . . Л •. I. . 1.1 .. И ••••-TTi . . - Г - - . \ГТГ. Д .
. - Т . 1 . - Г . . 1 Д ~ ^ ^ ]•
Оравва Вид избранн
J J g Л Jj J •
Сервис
-> В -
Имя:1
Фамилия: I
Адрес E-mail: |
Сообщение:
Области интересов:
Операционные системы: Г Windows 98 Г Windows ХР Г Windows NT
Оборудование: Г Настольные компьютеры Г Портативные компьютеры Г PDA
ГПрннтеры ГМоняторы .
Можем ли мы передавать ваш адрес электронной почты другим посетителям? г Да ff
Нет
Можем ли мы связываться с вами для передачи анонсов по новым продуктам, к
которым
вы проявили интерес? <~Да г Нет
Сколько пользователей работает в вашей сети?
3 р ч
г 1-5
г б-10
г 7-15
г 16+
_J
Рис. 3.9. Две группы переключателей на форме
••у ПРАКТИКУМ
Если всех переключателей в первой группе содержат значение
MContact_OK", а атрибуты всех переключателей во второй группе — значение
fluser_count", то для проверки того, что посетитель выбрал по одному переклю-
чателю из каждой группы можно воспользоваться следующим JavaScript-сценарием:
Обратите внимание, что для каждой группы переключателей установлено
свойство length, которое используется для выполнения итераций по массиву пе-
реключателей в группе и проверки значения свойства checked для каждого пере-
ключателя в группе. Передавая функции countseiections () сначала группу
Contact_OK, а затем группу user__count, можно использовать один и тот же код
для проверки наличия выбранного переключателя в каждой из групп, даже не-
смотря на разное количество переключателей в группах. В каждой группе значе-
ние свойства checked для выбранного переключателя равно True. Поэтому функ-
ция countseiections () возвращает True, если в каждой из переданных ей групп
переключателей есть хотя бы один переключатель, значение свойства checked
которого равно True. Для группы, в которой посетитель не выбрал какой-нибудь
переключатель (или другими словами, группы, которую посетитель пропустил),
ФУНКЦИЯ countSelections() ВОЗВращает False. Функция ValidateFrom() (КОТО-
рая вызывает функцию countseiections o ) , в свою очередь, возвращает атри-
буту onSubmit дескриптора значение, возвращаемое функцией
countSelections ().
Как уж