Глава 3. HTML-формы
В этой главе:
- Обработка HTML-форм
- Дескрипторы и атрибуты, используемые для создания форм
- Создание на форме однострочного поля ввода
- Создание на форме многострочного поля ввода
- Проверка данных текстового элемента перед передачей результатов заполнения формы
- Создание на форме флажков
- Создание на форме переключателей
- Проверка выбора группы переключателей перед передачей результатов формы
- Создание на форме выпадающего списка (меню выбора)
- Проверка выбора элемента списка перед передачей результатов формы
- Изменение элементов списка выбора на основании введенных посетителем данных
- Передача всех значений списка выбора на Web-сервер с использованием скрытых полей
- Создание на форме кнопки Reset
- Предотвращение случайной очистки посетителем элементов формы
- Создание на форме кнопки Submit
- Замена стандартных кнопок Submit и Reset другими графическими изображениями
- Отправка результатов формы по электронной почте без использования CGI-сценария
- Управление расположением элементов и текста формы с помощью HTML-таблиц
- Создание клавиши быстрой навигации по форме с помощью дескриптора <label>
- Указание Web-браузеру выполнять функцию проверки данных формы с помощью атрибута onClick
- Передача значений Wfeb-серверу с помощью скрытых полей
- Сокрытие ввода пользователя от просмотра в поле ввода пароля
- Вставка на форму кнопки общего типа
- Блокирование и разблокирование элементов формы "на лету"
Если Вы потратили некоторое время на путешествия по Web-сайтам в Internet, Вам наверняка приходилось заполнять определенное количество Web-форм. По сути дела, Вы сталкиваетесь с формами (например, поисковыми машинами или страницами входа в систему) при каждом посещении Web. Несмотря на то, что большую часть Web-страниц составляет текст, изображения и гиперссылки, которые позволяют получать информацию, практически все Web-сайты имеют, покрайней мере, одну форму, которая позволяет передавать данные администраторуWeb-сайта. Форма может быть простым экраном входа в систему, который запрашивает имя пользователя и пароль для получения доступа к сайту, или предоставлять такие сложные пользовательские интерфейсы, как Hotmail, E*Trade, eBay, Yahoo и т.д. Так, например, на рис. 3.1 показана форма настройки учетной записи пользователя и форма входа в систему на сайте http://www.hotmail.com.
С точки зрения дизайнера, формы дают возможность организовать диалог с посетителями сайта. Вместо использования текста и изображений для отправки информации, формы предоставляют текстовые окна, флажки, переключатели и меню выбора, позволяющие извлекать информацию.

Рис. 3.1. Пример формы из сайта http://www.hotmail.com
Для обработки откликов (т.е., результатов заполнения формы), получаемых от посетителей сайтов, как правило, используется определенный сценарий, выполняемый на стороне Web-сервера, и, возможно, сценарий, выполняемый браузером перед передачей информации, введенной пользователем в форму. Ниже в этой главе будет рассмотрена реализация упомянутых сценариев. А пока что следует запомнить, что сценарии обработки результатов формы выполняют две функции. Во-первых, Web-сервер или (предпочтительно) Web-браузер могут выполнять сценарий проверки правильности введенных в форму данных, т.е. сценарий,который проверяет, что пользователь заполнил все "обязательные" поля и что содержащиеся в форме данные соответствуют требуемому формату. Во-вторых, Web-сервер выполняет сценарий обработки результатов формы, или же сценарий может сохранять результаты в файле и передавать его другой программе для последующей обработки. (Некоторые программисты называют результаты, передаваемые браузером Web-серверу, набором данных формы.)
Несмотря на то что формы могут существенно отличаться по внешнему виду, все они имеют несколько общих элементов. Формы состоят из одного или нескольких полей ввода с надписями, флажков, переключателей или выпадающих меню, которые используются для ввода информации посетителями сайта. Кроме того, все формы содержат кнопку отправки Submit, на которую пользователь нажимает для отправки результатов формы Web-серверу. Большинство форм (особенно содержащих большое число полей ввода) также имеют кнопку сброса Reset, которая позволяет очистить все ранее введенные данные и начать ввод данных с самого начала. Помимо этих основных элементов (полей ввода с надписями и двух специальных кнопок) на форму можно поместить все те же эле-менты, которые могут быть помещены непосредственно на Web-страницу (един-ственное исключение — форма не может содержать другую форму). Как будет рассказано в этой главе, HTML-форма, как и HTML-таблица, представляет собой контейнер для помещения объектов Web-страницы. Тем не менее, в отличие от HTML-таблицы (которая предназначена для передачи информации посетителю сайта), назначение формы состоит в получении отклика от посетителя.