ных посетителем данных
Ранее в этой главе мы говорили о том, что список выбора представляет собой
меню, из которого посетитель может выбрать один или несколько элементов в
зависимости от того, присутствует ли атрибут multiple в дескрипторе
списка выбора. (Если атрибут multiple указан, Web-браузер даст посетителю
возможность выбирать из меню несколько элементов.) Несмотря на то что вы
должны указать возможность или невозможность выбора в списке нескольких
элементов в описании списка выбора, содержащиеся в списке элементы можно
менять в любое время, даже после того как браузер визуализировал этот список.
Предположим, например, что имеется форма, показанная на рис. 3.11, кото-
рая предлагает посетителю ввести имена членов его семьи, а затем выбрать имя
наиболее пожилого из них.
ПРАКТИКУМ
В этом примере меню выбора (показанное на рис. 3.11 над кнопками Submit и
Reset) СОДерЖИТ ТОЛЬКО ОДИН Элемент - "-— Имена членов семьи --" ("--
Family Member Names — " ) . Чтобы ДОбаВИТЬ В СПИСОК Выбора НОВЫе Элементы
(т.е. имена членов семьи), запрограммируем кнопку для вызова JavaScript-функ-
ции, которая будет вставлять в список новый элемент:
Далее определим функцию addToListo, которую Web-браузер будет вызывать
при нажатии посетителем кнопки "Добавить имя в список". Для этого вставим
следующий JavaScript-код после дескриптора в рамках HTML-кода Web-
страницы. (Имя функции и значение атрибута value кнопки будет зависеть от
функции, которая должна выполняться в результате нажатия кнопки.)
Глава 3. HTML-формы 151
Файл Орввкв С.рвис. Справке
барвс j@] h1tpy/htmbvebdesign/Chapter03/Figure03-10 htm
Пожалуйста, введите имена членов вашей семьи:
Добавить имя в список
Выберите в списке имя старейшего члена семьи.
Можно выбирать несколько имен.
- Имена членов семьи —
Отправить Очистить
Рис. 3.11. Форма, в которой данные, введенные в текстовое поле,
изменяют содержимое списка выбора
152 Глава 3. HTML-формы
После проверки ввода пользователем хоть какой-нибудь информации в тек-
стовое поле имени члена семьи функция addToListo добавляет новый элемент
в список выбора с использованием следующего синтаксиса:
ИмяСпискаВыбора. options[ИндексНовогоЭлемента] =
new Option(ТекстОпции, ЗначениеОпции, SelectedByDefault,
SelectedWhenAdded) ;
В нашем примере параметры SelectedByDefault И SelectedWhenAdded В ВЫ-
зове new Option имеют значения 0. Это значит, что вновь добавленные новые
элементы списка по умолчанию являются невыбранными, и во время добавления
нового элемента Web-браузер не выбирает его автоматически. Если же требуется,
чтобы Web-браузер выбирал каждый елемент после его добавления пользовате-
лем, установите значение параметра SelectedWhenAdded равным 1.
Передача всех значений списка выбора на
Web-сервер с использованием скрытых полей
В предыдущем практикуме вы посмотрели, как использовать JavaScript-опера-
тор new для добавления дополнительных опций (то есть элементов) в список вы-
бора в ответ на введенную посетителем инормацию в текстовом поле формы. Од-
нако когда посетитель щелкает на кнопке отправки формы, браузер отправляет
Web-серверу только выбранные элементы списка выбора как часть результатов за-
полнения формы. Как правило, это как раз то, что мы ожидаем от Web-браузера,
поскольку список элементов был подготовлен заранее в коде формы.
В случае, когда вы предлагаете посетителю добавить в список выбора новые
элементы, необходимо чтобы передавались не только выбранные в списке эле-
менты, но также и невыбранные. Иначе какой же смысл предлагать посетителю
вводить что-либо, можно сказать, впустую.
Предположим, например, вы предлагаете посетителю ввести моде