Таблица 2. Атрибуты тега
Атрибут
Значение / описание
disabled
Если атрибут присутствует, то группа связанных элементов формы, находящихся внутри контейнера , отключены для заполнения и редактирования. Используется для ограничения доступа к некоторым полям формы, содержащих ранее введенные данные. Атрибут используется без указания значения — .
form
name
Определяет имя
, которое будет использоваться для ссылки на элементы в JavaScript, или для ссылки на данные формы после заполнения и отправки формы. Является аналогом атрибута id .
3. Создание полей формы
Элемент создает большинство полей формы. Атрибуты элемента отличаются в зависимости от типа поля, для создания которого используется этот элемент.
С помощью css-стилей можно изменить размер шрифта, тип шрифта, цвет и другие свойства текста, а также добавить границы, цвет фона и фоновое изображение. Ширина поля задается свойством width .
Таблица 3. Атрибуты тега
Атрибут
Значение / описание
accept
Определяет тип файла, разрешенных для отправки на сервер. Указывается только для . Возможные значения:
file_extension — разрешает загрузку файлов с указанным расширением, например, accept=".gif" , accept=".pdf" , accept=".doc"
audio/* — разрешает загрузку аудиофайлов
video/* — разрешает загрузку видеофайлов
image/* — разрешает загрузку изображений
media_type — указывает на медиа-тип загружаемых файлов.
alt
Определяет альтернативный текст
для изображений, указывается только для .
autocomplete
Отвечает за запоминание введенных в текстовое поле значений и автоподстановку их при последующем вводе:
on — означает, что поле не защищено, и его значение можно сохранять и извлекать,
off — отключает автозаполнение для полей форм.
autofocus
Позволяет сделать так, чтобы в загружаемой форме то или иное поле ввода уже имело фокус (было выбрано), являясь готовым к вводу значения.
checked
Атрибут проверяет, установлен ли флажок по умолчанию при загрузке страницы для полей типа type="checkbox" и type="radio" .
disabled
form
Значение атрибута должно быть равно атрибуту id элемента
formaction
Задает url файла, который будет обрабатывать введенные в поля данные при отправке формы. Задается только для полей типа type="submit" и type="image" . Атрибут переопределяет значение атрибута action самой формы.
formenctype
Определяет, как будут кодироваться данные полей формы при отправке на сервер. Переопределяет значение атрибута enctype формы. Задается только для полей типа type="submit" и type="image" . Варианты:
application/-x-www-form-urlencoded — значение по умолчанию. Все символы кодируются перед отправкой (пробелы заменяются на символ + , специальные символы преобразуются в значения ASCII HEX)
multipart/form-data — символы не кодируются
text/plain — пробелы заменяются на символ + , а специальные символы не кодируются.
formmethod
Атрибут определяет метод, который браузер будет использовать для отправки данных формы на сервер. Задается только для полей типа type="submit" и type="image" . Переопределяет значение атрибута method формы. Варианты:
get — значение по умолчанию. Данные из формы (пара имя/значение) добавляются в url-адрес и отправляются на сервер: URL?имя=значение&имя=значение
post — данные формы отправляются в виде http-запроса.
formnovalidate
Определяет, что данные полей формы не должны проверяться при отправке формы. Переопределяет значение атрибута novalidate формы. Можно использовать без указания значения атрибута.
formtarget
Определяет, где выводить ответ, полученный после отправки формы. Задается только для полей типа type="submit" и type="image" . Переопределяет значение атрибута target формы.
_parent – загружает ответ в родительский фрейм
_top – загружает ответ во весь экран
framename – загружает ответ во фрейм с указанным именем.
height
Значение атрибута содержит количество пикселей без указания единицы измерения. Устанавливает высоту поля формы типа type="image" , например, . Рекомендуется одновременно устанавливать как высоту, так и ширину поля.
list
Является ссылкой на элемент , содержит его id .Позволяет предоставить пользователю несколько вариантов на выбор, когда он начинает вводить значение в соответствующем поле.
max
Позволяет ограничить допустимый ввод числовых данных максимальным значением, значение атрибута может содержать целое или дробное число. Рекомендуется использовать этот атрибут вместе с атрибутом min . Работает со следующими типами полей: number , range , date , datetime , datetime-local , month , time и week .
maxlength
Атрибут задает максимальное количество символов, вводимых в поле. Значение по умолчанию 524288 символов.
min
Позволяет ограничить допустимый ввод числовых данных минимальным значением.
multiple
Позволяет пользователю ввести несколько значений атрибутов, разделяя их запятой. Применяется в отношении файлов и адресов электронной почты. Указывается без значения атрибута.
name
Определяет имя, которое будет использоваться для доступа к элементу
pattern
Позволяет определять с помощью регулярного выражения
синтаксис данных, ввод которых должен быть разрешен в определенном поле. Например, pattern="{3}-{3}" — квадратные скобки устанавливают диапазон допустимых символов, в данном случае — любые строчные буквы, число в фигурных скобках указывает, что нужны три строчные буквы, после которых следует тире, далее — три цифры в диапазоне от 0 до 9.
placeholder
Содержит текст, который отображается в поле ввода до заполнения (чаще всего это подсказка).
readonly
Не позволяет пользователю изменять значения элементов формы, выделение и копирование текста при этом доступно. Указывается без значения атрибута.
required
Выводит сообщение о том, что данное поле является обязательным для заполнения. Если пользователь попытается отправить форму, не введя в это поле требуемое значение, то на экране отобразится предупреждающее сообщение. Указывается без значения атрибута.
size
Задает видимую ширину поля в символах. Значение по умолчанию — 20. Работает со следующими типами полей: text , search , tel , url , email и password .
src
Задает url изображения, используемого в качестве кнопки отправки данных формы. Указывается только для поля .
step
Используется для элементов, предполагающих ввод числовых значений, указывает величину увеличения или уменьшения значений в процессе регулировки диапазона (шаг).
type
button — создает кнопку.
checkbox — превращает поле ввода во флажок, который можно установить или очистить, например, У меня есть автомобиль
color — генерирует палитры цветов в поддерживающих браузерах, давая пользователям возможность выбирать значения цветов в шестнадцатеричном формате.
date — позволяет вводить дату в формате дд.мм.гггг.
День рождения:
datetime-local — позволяет вводить дату и время, разделенные прописной английской буквой Т по шаблону дд.мм.гггг чч:мм.
День рождения — день и время:
email — браузеры, поддерживающие данный атрибут, будут ожидать, что пользователь введет данные, соответствующие синтаксису адресов электронной почты.
E-mail:
file — позволяет загружать файлы с компьютера пользователя.
Выберите файл:
hidden — скрывает элемент управления, который не отображается браузером и не дает пользователю изменять значения по умолчанию.
image — создает кнопку, позволяя вместо текста на кнопке вставить изображение.
month — позволяет пользователю вводить год и номер месяца по шаблону гггг-мм.
number — предназначено для ввода целочисленных значений. Его атрибуты min , max и step задают верхний, нижний пределы и шаг между значениями соответственно. Эти атрибуты предполагаются у всех элементов, имеющих численные показатели. Их значения по умолчанию зависят от типа элемента.
Укажите количество (от 1 до 5):
password — создает текстовые поля в форме, при этом вводимые пользователем символы заменяются на звездочки, маркеры, либо другие, установленные браузером значки.
Введите пароль:
radio — создает переключатель - элемент управления в виде небольшого кружка, который можно включить или выключить.
Вегетарианец:
range — позволит создать такой элемент интерфейса, как ползунок, min / max — позволят установить диапазон выбора
reset — создает кнопку, которая очищает поля формы от введенных пользователем данных.
search — обозначает поле поиска, по умолчанию поле ввода имеет прямоугольную форму.
Поиск:
submit — создает стандартную кнопку, активизируемую щелчком мыши. Кнопка собирает информацию с формы и отправляет ее для обработки.
text — создает текстовые поля в форме, выводя однострочное текстовое поле для ввода текста.
time — позволяет вводить время в 24-часовом формате по шаблону чч:мм. В поддерживающих браузерах оно отображается как элемент управления в виде числового поля ввода со значением, изменяемым с помощью мыши, и допускает ввод только значений времени.
Укажите время:
url — поле предназначено для указания URL-адресов.
Главная страница:
week — соответствующий инструмент-указатель позволяет пользователю выбрать одну неделю в году, после чего обеспечит ввод данных в формате нн-гггг. В зависимости от года число недель может быть 52 или 53.
Укажите неделю:
value
Определяет текст, отображаемый на кнопке, в поле или связанный текст. Не указывается для полей типа file.
width
Значение атрибута содержит количество пикселей. Позволяет задать ширину полей формы.
4. Текстовые поля ввода
Элемент используется вместо элемента , когда нужно создать большие текстовые поля. Текст, отображаемый как исходное значение, помещается внутрь тега. Размеры поля устанавливаются при помощи атрибутов cols – размеры по горизонтали, rows – размеры по вертикали. Высоту поля можно задать свойством height . Все размеры считаются исходя из размера одного символа моноширинного шрифта.
5. Раскрывающийся список
Списки дают возможность расположить большое количество пунктов компактно. Раскрывающиеся списки создаются при помощи элемента ... . Они позволяют выбрать одно или несколько значений из предложенного множества. По умолчанию в поле списка отображается его первый элемент.
Для добавления в список пунктов используются элементы ... , которые располагаются внутри .
Для систематизации списков применяется элемент ... , который создает заголовки в списках.
Для списков возможно изменить размер шрифта, тип шрифта, цвет и другие свойства текста, а также добавить границы, цвет фона и фоновое изображение.
Таблица 5. Атрибуты тега
Атрибут
Значение / описание
autofocus
Устанавливает автоматический фокус на элементе при загрузке страницы.
disabled
Отключает раскрывающийся список.
form
Определяет форму, которой принадлежит данный список. В качестве значения атрибута указывается идентификатор формы.
multiple
Дает возможность выбора одного или нескольких пунктов, для этого при выборе нужно нажать и удерживать нажатой клавишу Ctrl .
name
Определяет имя для выпадающего списка. Значение атрибута содержит название, отражающее тематику списка.
required
Выводит сообщение о том, что пользователь должен выбрать значение из раскрывающегося списка перед отправкой формы.
size
Задает количество одновременно видимых на экране элементов списка. Если количество элементов списка превышает установленное количество, появляется полоса прокрутки. Значение атрибута задается целым положительным числом.
6. Надписи к полям формы
Надписи к элементам формы создаются с помощью элемента ... . Существует два способа группировки надписи и поля. Если поле находится внутри элемента , то атрибут for указывать не нужно.
Когда вы последний раз летали на самолете?
Кошка
7. Кнопки
Элемент ... создает кликабельные кнопки. В отличие от кнопок, созданных ( , , , ), внутрь элемента можно поместить контент — текст или изображение.
Для корректного отображения элемента разными браузерами нужно указывать атрибут type , например, .
Кнопки позволяют пользователям передавать данные в форму, очищать содержимое формы или предпринимать какие-либо другие действия. Можно создавать границы, изменять фон и выравнивать текст на кнопке.
Таблица 9. Атрибуты тега
Атрибут
Значение / описание
autofocus
Устанавливает фокус на кнопке при загрузке страницы.
disabled
Отключает кнопку, делая ее некликабельной.
form
Указывает на одну или несколько форм, которым принадлежит данная кнопка. Значение атрибута — идентификатор соответствующей формы.
formaction
Значение атрибута содержит url-адрес обработчика данных формы, отправляемых при нажатии на кнопку. Только для кнопки типа type="submit" . Переопределяет значение атрибута action , указанного для элемента .
formenctype
Задает тип кодировки данных формы перед отправкой на сервер при нажатии на кнопки типа type="submit" . Переопределяет значение атрибута enctype , указанного для элемента . Возможные значения:
application/x-www-form-urlencoded — значение по умолчанию. Все символы перед отправкой будут закодированы.
multipart/form-data — символы не кодируются. Используется в случае, когда с помощью формы загружаются файлы.
text/plain — символы не кодируются, а пробелы заменяются на символ + .
formmethod
Атрибут определяет метод, который браузер будет использовать для отправки формы. Переопределяет значение атрибута method , указанного для элемента . Указывается только для кнопок типа type="submit" . Возможные значения:
get — данные из формы (пара имя/значение) добавляются в url-адрес и отправляются на сервер. Данный способ имеет ограничения по размеру отправляемых данных и не подходит для отправки паролей и конфиденциальной информации.
post — данные из формы добавляются в виде http-запроса. Метод является более надежным и безопасным, чем get и не имеет ограничений по размеру.
formnovalidate
Атрибут задает, что данные формы не должны проверяться при отправке. Указывается только для кнопок типа type="submit" .
formtarget
Атрибут задает, в каком окне выводить результат после отправки формы. Указывается только для кнопок типа type="submit" . Переопределяет значение атрибута target , указанного для элемента .
_blank — загружает ответ в новое окно/вкладку
_self — загружает ответ в то же окно (значение по умолчанию)
_parent — загружает ответ в родительский фрейм
_top — загружает ответ во весь экран
framename — загружает ответ во фрейм с указанным именем.
name
Задает имя кнопки, значение атрибута — текст. Используется для ссылки на данные формы, после того как форма была отправлена, или для ссылки на данную кнопку (кнопки) в JavaScript.
type
Определяет тип кнопки. Возможные значения:
button — кликабельная кнопка
reset — кнопка сброса, возвращает первоначальное значение
submit — кнопка для отправки данных формы.
value
Задает значение по умолчанию, отправляемое при нажатии на кнопку.
8. Флажки и переключатели в формах
Флажки в формах задаются с помощью конструкции , а переключатель — при помощи .
Флажков, в отличие от переключателей, в одной форме может быть установлено несколько. Если для флажков указан атрибут checked , то при загрузке станицы на соответствующих полях формы флажки уже будут установлены.
Элемент применяется при реализации выбора с помощью переключателей и флажков. Можно выбрать нужный пункт, просто щелкая кнопкой мыши на тексте, связанном с ним. Для этого нужно поместить внутрь элемента .
Форма в HTML-документе реализуется тегом-контейнером FORM
, в котором задаются все управляющие элементы - поля ввода, кнопки и.т.д. Если управляющие элементы указаны вне содержимого тега FORM
, то они не создают форму, а используются для построения пользовательского интерфейса на веб-странице, то есть для привнесения в нее различных кнопок, флажков, полей ввода.
Обработка элементов формы производится с помощью скриптов, но они могут и вообще никак не обрабатываться.
Имена элементам формы присваиваются через их атрибут NAME
.
Каждый элемент формы может иметь начальное и конечное значения, которые являются символьными строками. Начальные значения элементов не меняются, благодаря чему может осуществляться сброс значений, указанных пользователем. Результатом этого действия будет установка всех управляющих элементов формы в своих первоначальных используемых по умолчанию значениях.
В HTML 4.01 определены следующие типы управляющих элементов:
Кнопки - задаются с помощью элементов BUTTON
и INPUT
. Различают:
»
кнопки отправки - при нажатии на них, они осуществляют отправку формы серверу;
»
кнопки сброса - при нажатии на них, управляющие элементы принимают первоначальные значения;
»
прочие кнопки - кнопки, для которых не указано действие, выполняемое по умолчанию при нажатии на них.
Зависимые переключатели (переключатели с зависимой фиксацией) - задаются элементом INPUT
и представляют собой переключатели "вкл/выкл". Если несколько зависимых переключателей имеют одинаковые имена, то они являются взаимоисключающими. Это значит, что если одна из них ставится в положение "вкл", то все остальные автоматически - в положение "выкл". Именно это и является преимуществом их использования.
Независимые переключатели (переключатели с независимой фиксацией) - задаются элементом INPUT
и представляют собой переключатели "вкл/выкл", но в отличие от зависимых, независимые переключатели могут принимать и изменять свое значение независимо от остальных переключателей. Даже если последние имеют такое же имя.
Меню - реализуется с помощью элементов SELECT
, OPTGROUP
и OPTION
. Меню предоставляют пользователю список возможных вариантов выбора.
Ввод текста - реализуется элементами INPUT
, если вводится одна строка, и элементами TEXTAREA
- если несколько строк. В обоих случаях введенный текст становится текущим значением управляющего элемента.
Выбор файлов - позволяет вместе с формой отправлять выбранные файлы, реализуется HTML-элементом INPUT
.
Скрытые управляющие элементы - создаются управляющим элементом INPUT
.
Как видите, очень много элементов задаются с помощью универсального тега INPUT
.
Полную спецификацию по HTML4 Вы можете найти
Тег FORM - контейнер форм
Как уже было сказано, форма в HTML-документе реализуется тегом-контейнером FORM
. Этот тег своими атрибутами указывает адрес сценария (скрипта), которому будет послана форма, способ пересылки и характеристику данных, содержащихся в форме. Начальный и конечный теги FORM
задают границы формы, поэтому их указание является обязательным.
Приведем атрибуты тега FORM
:
action
- единственный обязательный атрибут. В качестве его значения указывается URL-адрес запрашиваемого скрипта, которая будет обрабатывать данные, содержащиеся в форме. Допустимо использовать запись mailto:URL
, благодаря которой форма будет послана по электронной почте. Если атрибут ACTION
все-таки не указан, то содержимое формы будет отправлено на URL-адрес, с которого загружалась данная веб-страница;
method
- определяет метод HTTP, используемый для пересылки данных формы от браузера к серверу. Атрибут METHOD
может принимать два значения: GET
и POST
;
enctype
- необязательный атрибут. Указывает тип содержимого формы, используемый для определения формата кодирования при ее пересылке. В HTML определены два возможных значения для атрибутов ENCTYPE
:
APPLICATION/X-WWW-FORM-URLENCODED (используется по умолчанию);
MULTIPART/FORM-DATA.
Тег INPUT и его методы
Элемент INPUT
является наиболее употребительным тегом HTML-форм. С помощью этого тега реализуются основные функции формы. Он позволяет создавать внутри формы поля ввода строки текста, имени файла, пароля и.т.д.
Обратите внимание на особенность INPUT
- у него нет конечного (завершающего) тега. Атрибуты и особенности использования INPUT
зависят от способа его использования. Рассмотрим эти способы.
»
Однострочные поля ввода
Наиболее часто используются поля ввода - ведь даже кнопка является полем ввода информации. Начнем с поля ввода текстовой информации. Формат тега INPUT
для создания поля ввода текстовой строки:
Данный тег создает поле воода с максимально допустимой длиной текста maxlen
и размером в size
знакомест. Если указан атрибут value
, то в поле будет изначально отображаться значение данного атрибута. В квадратных скобках помечены необязательные атрибуты.
Вот пример однострочного поля ввода:
»
Поля ввода пароля
Конечно, имя пользователя можно ввести с помощью обыкновенного текстового поля. А вот пароль не должен отображаться на экране при его вводе. В этом нам поможет поле ввода пароля:
Принцип работы данного тега точно такой же, как и текстового. Разница заключается в том, что вводимая информация в поле не отображается, а заменяется "звездочками
". Не рекомментуется устанавливать значение по умолчанию из соображений безопасности (value
).
Вот пример поля ввода пароля:
»
Скрытое текстовое поле
Для передачи служебной информации (о которой пользователь даже не должен подозревать) используются скрытые поля. С помощью таких полей, например, могут передаваться параметры настройки.
Такие поля передаются серверу, но на веб-странице не отображаются.
»
Независимые переключатели
Очень часто пользователю, заполняющему форму в браузере, необходимо дать возможность указать свои настройки с помощью выбора определенных значений. При этом приводятся сами эти значения, а рядом с ними помещается небольшое квадратное поле, в котором можно установить, или убрать галочку. При этом значение, соответственно, будет либо выбрано, либо нет.
Реализовать это можно опять же с помощью тега INPUT
. Для этого только необходимо в качестве значения атрибута type
указать chechbox
.
Если переключатель был включен на момент нажатия кнопки отправки данных, то скрипту будет передан параметр имя=значение
. Если же флажок выключен, то сценарию вообще ничего не будет передано - как будто переключателя вообще нет.
Переключатель по умолчанию либо включен, либо выключен. Чтобы переключатель был по умолчанию включен, необходимо для него указать атрибут checked
.
Переключатель checkbox
называется независимым, так как его состояние не зависит от состояния других переключателей checkbox
. Таким образом, в одной форме модет быть одновременно выбрано несколько переключателей.
Приведем пример независимых переключателей:
В HTML есть и такой переключатель, который зависит от других переключатель, он рассматривается далее.
»
Зависимые переключатели
Зависимы переключатель, так же как и независимый переключатель, может быть либо включен, либо выключен. При этом переключатель radio
является зависимым переключателем, поскольку на форме может быть только один включенный переключатель типа radio
. Точнее, если в форме присутствуют несколько одноименных зависимых переключателей, то включен из них может быть только один. При выборе одного переключателя все одноименные зависимые переключатели автоматически выключаются. В качестве имени переключателей воспринимается значение атрибута name.
Может быть только один активный переключатель. Пример листинга формы с зависимыми переключателями:
Да
Нет
Данная форма будет выглядеть так:
Первый переключатель (со значением yes
) активен по умолчанию (мы установили атрибут checked
).
Как только пользователь нажмет кнопку "Отправить", скрипту script.php
будет передан параметр answer
(атрибут name
обоих переключателей) со значением yes
или no
(в зависимости от того, какой вариант выбрал пользователь).
А вот так выглядит текст скрипта , принимающий данные из рассмотренной формы и обрабатывающий ответ.
»
Кнопка отправки формы
Еще одним элементом управления типа INPUT
являются кнопки. Кнопка отправки служит для отправки скрипту ввведенных в форму параметров. Синтаксис тега INPUT
при этом такой:
Атрибут value
определяет текст, который будет написан на кнопке отправки. Атрибут name определяет имя кнопки и является необязательным. Если значение этого атрибута не указывать, то скрипту будут переданы введенные в форму значения и все. Если атрибут name
для кнопки будет указан, то дополнительно к основным данным формы будет отправлена пара имя=значение
от самой кнопки.
»
Кнопка сброса параметров
Кроме кнопки submit
есть еще кнопка reset
, которая сбрасывает параметры формы, а точнее, устанавливает для всех элементов формы значения по умолчанию. Желательно, чтобы на форме была такая кнопка, особенно, если это большая форма. Наличие данной кнопки обеспечивает очистку формы, например, в случае, когда были введены неправильные параметры. Синтаксис кнопки сброса:
»
Кнопка отправки с рисунком
Вместо кнопки submit
можно использовать рисунок для отправки данных. Клик на этом рисунке дает то же самое, что и нажатие на кнопку submit
. Однако, кроме этого, сценарию будут переданы координаты места клика на рисунке. Координаты будут переданы в формате имя.x=коор_X
, y=коор_Y
. Синтаксис кнопки отправки с рисунком:
Многострочные текстовые поля. Тег TEXTAREA
В HTML многострочные текстовые поля создаются с помощью тега TEXTAREA
. Поле, создаваемое этим тегом, позволяет вводить и отправлять не одну строку, а сразу несколько строк. Синтаксис тега TEXTAREA
:
текст по умолчанию
Несколько значений относительно использования атрибутов: необязательные параметры cols
и rows
желательно все-таки указывать. Первый из них задает количество символов в строке, а второй - количество строк в области. Атрибут wrap
определяет тип переноса текста, как будет выглядеть текст в поле ввода:
Virtual
- справа от текстового поля выводится полоса прокрутки. Вводимый текст выглядит разбитым на строки, а символ новой строки вставляется при нажатии клавиши ENTER
;
Physical
- этот тип зависит от типа браузера и выглядит по-разному;
None
- текст выглядит в поле в том виде, в котором пользователь его вводит. Если текст не уменьщается в одну строку, появляется горизонтальная полоса прокрутки.
Следует заметить, что наиболее удобным является тип Virtual
. Вот пример многострочного текстового поля с использованием атрибуту wrap=Virtual
.
Не раз нам доводилось видеть Web-страницы, на которых нам предлагалось
ввести некоторые данные в поля ввода. В HTML существует механизм получения
данных от пользователя. Естественно, эти данные необходимо еще обработать,
но этим занимаются специализированные программы. Рассмотрим механизм их
взаимодействия с Web-страницами.
Итак, пользователь загрузил себе Web-страницу, на которой располагаются
органы управления для ввода информации. Все они объединены в общую совокупность,
называемую формой.
Каждая форма обладает кнопкой,
по нажатию на которую введенные пользователем данные передаются обрабатывающей
программе. Эта программа размещается на Web-сервере, который и обслуживает
данную страницу. Подобные программы могут создаваться при помощи самых
различных технологий программирования. Объединяет их лишь единый порядок
получения данных от Web-страницы. Данные передаются при помощи шлюзового
интерфейса CGI (Common Gateway Interface). Поэтому обрабатывающие программы
часто называют CGI-приложениями или CGI-скриптами.
Итак, приложение получает данные и обрабатывает их. Затем оно может либо
послать некое электронное письмо, либо произвести некоторую операцию в
базе данных, или передать пользователю новую Web-страницу, возможные действия
ограничиваются лишь свойствами технологии и фантазией программиста. При
помощи подобных программ действуют всевозможные системы регистрации, обратной
связи, гостевые книга, форумы, чаты. С их помощью создаются и более разветвленные
и сложные системы, например, online-магазины.
Для того чтобы создавать подобные приложения все-таки необходимо уметь
программировать и знать соответствующие правила создания CGI-приложений.
До, тех пор, пока мы этого не умеем, нам остается пользоваться опять-таки
общедоступными CGI-скриптами. Но если мы и получим эти приложения, то
форму для ввода данных пользователем необходимо все равно делать самостоятельно.
В данном разделе мы научимся это делать.
Форма ограничивается тегами
и
. Между этими тегами располагаются
теги, создающие органы ввода информации и теги создания обычного содержимого
Web-страницы, т. е. сами органы ввода могут размещаться в таблице, которая
в свою очередь полностью размещается в форме. Тег
не создает какой-либо отображаемой структуры. Он, скорее предназначен
для внутренней группировки объектов.
Тег
, естественно, обладает целым рядом параметров, которые
задают свойства создаваемой формы. Рассмотрим эти параметры.
Параметр action
является обязательным.
Значением его является URL указывающий на расположение того CGI-приложения,
которое и будет, обрабатывать данные, введенные пользователем при помощи
органа управления данной формы.
Параметр method
предназначен для указания
способа, которым данные будут передаваться обрабатывающему приложению.
В качестве значения параметра используется одно из двух предустановленных
ключевых cлов: get
или post
.
Сейчас нам нет нужды узнавать, какие механизмы peaлизуются при помощи
того или иного метода. Так или иначе, в сопроводительной документации
CGI-приложения указывается, какой метод neредачи данных следует использовать.
По умолчанию используется значек get.
Параметр enctype
используется для указания
типа передаваемых данных из формы. Обычно нет нужды его использовать,
так как значение application/x-www-form-urlencoded
,
используемое по умолчани идеально подходит для подавляющего большинства
CGI-приложений.
Параметр accept-charset
используется
в тех случаях, когда пользователь передает из формы приложению не только
информацию, но и файлы. В этом случае мы можем явно указать кодировки
передаваемых файлов. В качестве значения данного параметра используется
текстовая строка, в которой записывается одно или несколько названий кодировок.
В том случае, если применяется несколько кодировок, их наименование
разделяются пробелами или запятыми. По умолчанию используется значение
unknown,
которое указывает серверу, что
тот должен сам разобраться с используемыми кодировками
Параметр accept
задает типы передаваемых
файлов. Обычно не используется, так как сервер вполне в состоянии сам
адекватно распознать тип принимаемого файла.
Параметр name
позволяет задавать уникальное
имя формы. Естественно на одной Web-странице может находиться несколько
форм. В этом случае значения параметров name у них не должны совпадать.
Тег
с его закрывающим близнецом
, по сути, создают контейнер для размещения органов
ввода информации. Большая часть этих органов ввода реализуется при помощи
тега
. Продемонстрируем это на
небольшом примере (рис. 1.32).
Листинг 1.33
"http://www.w3.org/TR/html4/strict.dtd">
<р>Поле для ввода строки текста < input type="text">
Рис. 1.32. Окно браузера с результатом
отображения файла, приведенного в листинге 1.33
Итак, на иллюстрации видно, что мы смогли создать поле ввода текста
и кнопку, при нажатии на которую введенная пользователем информация будет
отправлена CGI-приложению для обработки. А если мы посмотрим на код листинга,
то мы увидим, что и кнопка и поле ввода создавались при помощи одного
и того же тега
. Регулировка
свойств этого тега производится при помощи его многочисленных параметров,
которые мы сейчас и рассмотрим.
Параметр type
является, пожалуй, ключевым
параметром. При помощи его значения мы можем устанавливать тип создаваемого
органа управления. В качестве значения используется одно из следующих
ключевых слов: text, password, checkbox, radio,
submit, reset, file, hidden,
image, button.
По умолчанию используется значение text.
Более подробно эти типы мы рассмотрим немного позже.
Параметр name
предназначен для установки
уникальных имен для каждого органа управления. Несмотря на то, что параметр
не является обязательным, настоятельно рекомендуется использовать его.
В сопроводительной документации CGI-приложений обязательно указывается,
как имена должны быть у соответствующих органов ввода информации.
Параметр value
используется для указания
значения, отображаемого по умолчанию для кнопок и полей текстового ввода.
Если мы используем переключатели, то значение параметра value
не будет видно пользователю, но именно это значение получить обрабатывающее
CGI-приложение если пользователь выберет соответствующий переключатель.
Параметр cheked
используется только
для независимых переключателей и радиокнопок. Он устанавливает их начальное
состояние. Если этот параметр будет введен в тег <input>
,
то переключатель будет переведен во включенное состояние. Параметр используется
без значений.
Параметр disabled
делает орган управления
недоступным для использования пользователем. Параметр используется
без значений.
Параметр readonly
применяется только
для органов ввода типов text password. Использование этого параметра
означает, что данные, отображаемые в этих полях, нельзя будет изменять.
Параметр size
обычно задает размеры
органа ввода данных. Но для каждого отдельного типа органов ввода его
действие специфично.
Параметр maxiength
позволяет устанавливать
максимально возможно число символов, которые пользователь может внести
в поля текстового ввода. Значением параметра является целое положительное
число.
Параметр src
используется в тех случаях,
когда мы создаем органы ввода связанные с графикой. Значением данного
параметра является URL графического файла, который и содержит отображаемый
рисунок.
Параметр alt
позволяет создавать краткие
описания создаваемого органа ввода данных. Это описание может отображаться
в виде маленького хинта-подсказки, когда пользователь наводит курсор
мыши на данный орган ввода.
Параметр tabindex
задает номер органа
управления в последовательности всех объектов, перемещение фокуса ввода
между которыми осуществляется при помощи последовательных нажатий клавиши
табуляции.
Параметр accesskey
позволяет задавать
"горячую клавишу", при нажатии на которую пользователем фокус
ввода будет переходить к данному органу управления.
Итак, мы рассмотрели параметры, применяемые в теге . Но
мы уже знаем, что при помощи данного тега мы можем создавать самые различные
объекты форм. Пришло время детально разобраться с ними.
Объекты, входящие в форму, разделяются на два типа - органы ввода данных
и кнопки, инициирующие различные действия. Сначала посмотрим, как мы можем
создавать органы ввода.
Одним из самых распространенных объектов форм является однострочное поле
ввода. В листинге 1.33 мы видели, что оно создается при помощи параметра
type со значением text. При этом достаточно часто нам надо задавать ограничения
на максимально возможное количество символов, которые пользователь может
внести в это поле. Это ограничение реализуется при
помощи параметра maxlength.
Существует модификация однострочного поля ввода текста, которая предназначена
именно для ввода секретной информации, например, паролей. Они в отображают
вводимый текст, а заменяют его звездочками. Создание подобных полей ввода
производится при помощи следующей конструкции:
Использование типа checkbox
позволяет создавать
независимые переключатели. Они представляют собой всем знакомые квадратики,
в которых щелчком мыши мы можем устанавливать и снимать флажки в виде
галочек. При этом используется параметр value. Значение этого параметра
будет передана в обрабатывающее CGI-прияожение, если пользователь взведет
флажок данном независимом переключателе.
Также мы можем создавать группы переключателей, которые часто называют
зависимыми переключателями. В этой группе пользователь может выбирать
и помечать только один переключатель. Каждый переключатель создается при
помощи тега
с параметром
type,
которому приписано значение radio. Чтобы браузер понял, что
несколько переключателей принадлежат к одной группе, необходимо, чтобы
их значения параметра name были одинаковыми. Но при этом у них обязательно
должны различаться значения параметров value.
Рассмотрим на примере правила создания и отображения рассмотренных органов
ввода информации.
Листинг 1.34
:! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
http://www.w3.Qrg/TR/html4/strict.dtd">
,
<р>Поле для ввода строки текста
<р>Поле для ввода пароля
<р>Независимый переключатель
<р>Группа переключателейр>
<р>Альтернатива 1
<р>Альтернатива 2