Передать в html форму значения полей. Формы в HTML-документах. Стандартные элементы управления

Форма в HTML это часть документа, которая позволяет пользователю ввести интересующую нас информацию, которую впоследствии можно принять и обработать на стороне сервера. Другими словами, формы используются для сбора информации введённой пользователями.

Чтобы определить к какому элементу формы относится текущая метка, необходимо использовать атрибут for тега . Значение атрибута for должно соответствовать значению глобального атрибута того элемента формы, к которому будет относится метка. Атрибут for можно не использовать, если элемент будет находиться внутри элемента .

Рассмотрим пример использования:

Пример использования тега Да Нет
Да Нет

В этом примере мы:

  • Внутри первой формы:
    • Разместили две радиокнопки ( ) для выбора одного из ограниченного числа вариантов. Еще раз обратите внимание, что для радиокнопок внутри одной формы необходимо указывать одинаковое имя , значения мы указали разные. Для первой checked , который указывает, что элемент должен быть предварительно выбран при загрузке страницы (в данном случае радиокнопка со значением yes ). Кроме того, мы указали для радиокнопок глобальные атрибуты , которые определяют уникальный идентификатор для элемента.
    • Разместили два элемента , которые определяют текстовые метки для наших текстовых полей. Обратите внимание, что мы использовали атрибут for , чтобы определить к какому элементу формы относится текущая метка. Значение атрибута for соответствует значению глобального атрибута необходимой нам радиокнопки.
  • Внутри второй формы:
    • Разместили две радиокнопки ( ) для выбора одного из ограниченного числа вариантов. Для второй радиокнопки мы указали атрибут checked , который указывает, что элемент должен быть предварительно выбран при загрузке страницы (в данном случае радиокнопка со значением no ). Кроме того, мы указали для радиокнопок уникальные значения в рамках формы и одинаковые имена.
    • Разместили два элемента , внутри них мы разместили наши радиокнопки. В отличии от предыдущего метода отсутствует необходимость указывать для радиокнопок глобальные атрибуты (идентификатор для элемента), а для текстовых меток использовать атрибут for , чтобы на них сослаться (сделать привязку).

В браузере оба варианта (метода) использования текстовых меток выглядят идентично:

Подсказка для полей ввода

Давайте рассмотри пример использования:

Пример использования атрибута placeholder Login:

Password:
Далее

В данном примере мы указали для элемента с типом text (однострочное текстовое поле) и типом password (поле с паролем) текстовую подсказку для пользователя (атрибут placeholder), которая описывает ожидаемое значение для ввода.

Результат нашего примера:

Вопросы и задачи по теме

Перед тем как перейти к изучению следующей темы пройдите практическое задание:

  • Используя полученные знания составьте следующую форму оформления заказа:

Нюанс: в полях, где предполагается выбор, должна быть возможность осуществления выбора кликом по тексту, а не только по самому элементу.

После того как вы выполните упражнение проинспектируйте код страницы, открыв пример в отдельном окне, чтобы убедиться, что вы все выполнили правильно.

HTML. Формы и их атрибуты

Элементы форм знакомы всем пользователям современной глобальной сети. Это поля ввода текста и пароля, стандартные кнопки, радиокнопки-переключатели, «флажки», выпадающие списки и т.д. Наиболее очевидные варианты применения: ввод ключевых слов в поисковых системах, работа с электронной почтой через веб-интерфейс, регистрация на сайте, веб-анкеты, online-тесты. Сразу заметим, что использование форм предполагает интерактивность и, следовательно, обеспечение функциональности неизбежно связано с программированием (клиентским или серверным). Пожалуй, в большинстве случаев формы используются для передачи данных на сервер, однако и на стороне клиента есть задачи, в которых удобно применение форм (например, календарь или калькулятор).

Роль HTML состоит в описании необходимых элементов и компоновке их на странице. Все атрибуты форм и их элементов, описанных с помощью HTML, транслируются в соответствующие свойства объектов DOM и используются при создании сценариев JavaScript.

Описания управляющих элементов форм, призванных обеспечивать необходимую функциональность, должны быть расположены в контейнере form, атрибуты которого существенны на этапе разработки сценариев. Основные атрибуты элемента form :

атрибут описание возможные значения
name имя
action адрес файла серверного сценария, который будет обрабатывать заполненную и переданную форму
method метод передачи данных серверу get
post
enctype тип содержимого, используемый для отправки формы на сервер
multipart/form-data
accept-charset список кодировок символов ввода данных, которые будут обрабатываться сервером
target
onSubmit сценарий JavaScript, выполняемый перед отправкой данных формы на сервер
onReset сценарий JavaScript, выполняемый при сбросе значений элементов формы в значения по умолчанию

Внимательно прочитав описания атрибутов, заметим, что большинство из них актуальны при обработке данных формы серверным сценарием. Три атрибута имеют значения по умолчанию (что, вообще говоря, нехарактерно для HTML).

Все вышеперечисленные атрибуты формально необязательны, однако

  • при работе на стороне клиента необходимо задавать имя формы name , чтобы иметь возможность обращаться к элементам формы из сценария JavaScript;
  • отправка данных формы на сервер требует, как минимум, указания атрибута action , определяющего серверный сценарий обработки.

Смысл, по крайней мере, двух атрибутов необходимо пояснить более подробно.

Атрибут method

Атрибут method имеет два основных возможных значения: get (по умолчанию) и post.

Смысл этих значений следующий. При передаче данных методом get данные формы отправляются на сервер в заголовке запроса, а при использовании метода post – в теле запроса. Передача текстовых данных может осуществляться любым из этих методов. А вот бинарные данные могут быть отправлены только методом post. Это происходит в случае загрузки файла не сервер (всем понятный пример – приложение к электронному письму). Кстати, в этом случае необходимо указать enctype=”multipart/form-data” (см. далее примечения к атрибуту enctype).

Итак, за исключением случая передачи бинарных данных, равным образом можно применять оба возможных метода. На сложность разработки серверного сценария, принимающего данные из формы, это никоим образом не влияет. Какой же метод предпочтителен? Имеет смысл внимательно рассмотреть имеющиеся в сети ресурсы и убедиться, что в подавляющем большинстве случаев применяется метод get (например, в поисковых системах). Можно ли считать это негласным эмпирическим правилом? Для ответа на этот вопрос следует сравнить методы get и post по крайней мере в трех аспектах: объем передаваемых данных, безопасность и удобство пользователя.

  • Необходимо учитывать, что максимальный объем данных, передаваемых методом get , ограничен, в зависимости от настроек протокола, и в любом случае не может превышать 8192 Кб.
  • Передача конфиденциальной информации методом get, несомненно, представляет определенную угрозу безопасности, так как get-строка остается в журналах всех промежуточных серверов и прокси-сервера.
  • С другой стороны, можно задуматься, какой вариант удобнее пользователю информационного ресурса.
  • При передаче методом get пользователь имеет удовольствие видеть данные формы в адресной строке. Символы, отличные от стандартной латиницы кодируются. Например, пробелу соответствует код %20 . Каждый из нас постоянно наблюдает такую ситуацию, работая с поисковыми системами. Зададим, например в Яndex ключевое словосочетание «язык HTML » и увидим в адресной строке:

    Слово «язык » закодировано последовательностью %FF%E7%FB%EA, а «HTML» передается как есть. Получив такой запрос, соответствующая серверная программа обратится к базе данных и, в конечном счете, сгенерирует и отправит браузеру список результатов поиска. Приятно ли смотреть на такую адресную строку? Нет. Зато пользователь может сохранить уникальную закладку на сгенерированную страницу.

    При передаче методом post данные формы также отправляются на сервер. При этом пользователь не видит в адресной строке ничего «лишнего». Зато появляются другие проблемы: попытка обновить страницу вызывает маловразумительное для большинства пользователей сообщение: «… обновление страницы невозможно без повторной отправки данных…». И закладку не сохранить.

    Резюме. По-видимому, в большинстве типичных задач следует выбирать заданный по умолчанию метод get во всех случаях, кроме передачи на сервер:

    • бинарных данных,
    • конфиденциальной информации,
    • данных большого объема.
    Атрибут enctype

    Этот атрибут имеет два возможных значения:

    • application/x-www-form-urlencoded (по умолчанию)
    • multipart/form-data

    Первое значение используется в абсолютном большинстве случаев. Нет смысла указывать его явно – оно и так предполагается по умолчанию. Второй же тип кодировки (multipart/form-data ) указывается в единственном случае: при загрузке на сервер бинарного файла. При этом обязательно задание атрибута method=”post” .

    Форма в 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 .

    Тег FORM устанавливает форму на веб-странице. Форма предназначена для обмена данными между пользователем и сервером. Область применения форм не ограничена отправкой данных на сервер, с помощью клиентских скриптов можно получить доступ к любому элементу формы, изменять его и применять по своему усмотрению.

    Документ может содержать любое количество форм, но одновременно на сервер может быть отправлена только одна форма. По этой причине данные форм должны быть независимы друг от друга.

    Когда форма отправляется на сервер, управление данными передается CGI-программе, заданной параметром action тега FORM. Предварительно браузер подготавливает информацию в виде пары «имя=значение», где имя определяется параметром name тега INPUT, а значение введено пользователем или установлено в поле формы по умолчанию. Если для отправки данных используется метод GET, то адресная строка может принимать следующий вид.

    http://www..cgi? nick=%C2%E0%ED%FF+%D8%E0%EF%EE%F7%EA%E8%ED&page=5

    Параметры перечисляются после вопросительного знака, указанного после адреса CGI-программы и разделяются между собой символом амперсанда (&). Нелатинские символы преобразуются в шестнадцатеричное представление (в форме %HH, где HH - шестнадцатеричный код для значения ASCII-символа), пробел заменяется на плюс (+).

    Синтаксис

    ...

    Закрывающий тег
    Обязателен.

    Параметры
    action - адрес CGI-программы или документа, которые обрабатывает данные формы.
    enctype - MIME-тип информации формы.
    method - метод протокола HTTP.
    name - имя формы.
    target - имя окна или фрейма, куда обработчик будет загружать возвращаемый результат.

    Пример 1. Использование тега FORM



    Как по вашему мнению расшифровывается аббревиатура "ОС"?

    Офицерский состав

    Операционная система

    Большой полосатый мух


    Описание параметров тега FORM Параметр ACTION

    Описание
    Указывает обработчик, к которому обращаются данные формы при их отправке на сервер. В качестве обработчика может выступать CGI-программа или HTML-документ, который включает в себя серверные сценарии (например, Parser). После выполнения обработчиком действий по работе с данными формы он возвращает новый HTML-документ.

    Если параметр action отсутствует, текущая страница перезагружается, возвращая все элементы формы к их значениям по умолчанию.

    Синтаксис
    ...

    Аргументы
    В качестве значения принимается полный или относительный путь к серверному файлу (URL).

    Значение по умолчанию
    Нет.

    Пример 2. Добавление обработчика формы




    ...


    В качестве обработчика можно указать адрес электронной почты, начиная его с ключевого слова mailto. При отправке формы будет запущена почтовая программа установленная по умолчанию. В целях безопасности в браузере установлено, что отправить незаметно информацию, введенную в форме, по почте невозможно. Для корректной интерпретации данных используйте параметр enctype="text/plain" в теге FORM.

    Пример 3. Использование адреса электронной почты




    ...


    Параметр ENCTYPE

    Описание
    Устанавливает MIME-тип для данных отправляемых вместе с формой. Обычно устанавливать значение параметра enctype не требуется, данные вполне правильно понимаются на стороне сервера. Однако если используется поле для отправки файла (INPUT type=file), следует определить параметр enctype как multipart/form-data.

    Синтаксис
    ...

    Аргументы
    Имя MIME-типа в любом регистре. Допускается устанавливать сразу несколько значений, разделяя их запятыми.

    Значение по умолчанию
    application/x-www-form-urlencoded

    Пример 4. Изменение типа данных



    ...


    Параметр METHOD

    Описание
    Метод сообщает серверу о цели запроса. Различают два основных метода: GET и POST. Существуют и другие методы, но они пока мало используются.

    Синтаксис
    ...

    Аргументы
    Значение параметра method не зависит от регистра и его следует указывать без кавычек. Различают два метода - GET и POST.

    GET
    Этот метод является одним из самых распространенных и предназначен для получения требуемой информации и передачи данных в адресной строке. Пары «имя=значение» присоединяются в этом случае к адресу после вопросительного знака и разделяются между собой амперсандом (символ &). Удобство использования метода GET заключается в том, что адрес со всеми параметрами можно использовать неоднократно, сохранив его, например, в «Избранное» браузера, а также менять значения параметров прямо в адресной строке.

    POST
    Метод POST посылает на сервер данные в запросе браузера. Это позволяет отправлять большее количество данных, чем доступно методу GET, поскольку у него установлено ограничение в 4 Кб. Большие объемы данных используются в форумах, почтовых службах, заполнении базы данных и т.д

    Значение по умолчанию
    GET

    Пример 5. Метод отправки формы




    ...


    Параметр NAME

    Описание
    Определяет уникальное имя формы. Как правило, имя формы используется для доступа к ее элементам через скрипты.

    Синтаксис
    ...

    Аргументы
    В качестве имени используется набор символов, включая числа и буквы. JavaScript чувствителен к регистру, поэтому при обращении к форме по имени через скрипты соблюдайте то же написание, что и в параметре name.

    Значение по умолчанию
    Нет.

    Пример 6. Использование имени формы




    function validForm() {
    alert("Имя " + document.forms("form1").nick.value)
    }




    Имя:



    Параметр TARGET

    Описание
    После того, как обработчик формы получает данные, он возвращает результат в виде HTML-документа. Вы можете определить окно, в которое будет загружаться итоговая веб-страница. Для этого используется параметр target, в качестве его значения используется имя окна или фрейма. Если параметр target не установлен, возвращаемый результат показывается в текущем окне.

    Синтаксис
    ...

    Аргументы
    В качестве аргумента используется имя окна или фрейма, заданное параметром name. Если установлено несуществующее имя, то будет открыто новое окно. В качестве зарезервированных имен используются следующие.

    Blank - загружает страницу в новое окно браузера.
    _self - загружает страницу в текущее окно.
    _parent - загружает страницу во фрейм-родитель, если фреймов нет, то этот параметр работает как _self.
    _top - отменяет все фреймы и загружает страницу в полном окне браузера, если фреймов нет, то этот параметр работает как _self.

    Значение по умолчанию
    _self

    Пример 7. Открытие новой страницы




    ...


    HTML-формы являются элементами управления, которые применяются для сбора информации от посетителей веб-сайта.

    Веб-формы состоят из набора текстовых полей, кнопок, списков и других элементов управления, которые активизируются щелчком мыши. Технически формы передают данные от пользователя удаленному серверу.

    Для получения и обработки данных форм используются языки веб-программирования, такие как PHP , Perl .

    До появления HTML5 веб-формы представляли собой набор нескольких элементов , , завершающихся кнопкой . Для стилизации форм в разных браузерах приходилось прилагать немало усилий. Кроме того, формы требовали применения JavaScript для проверки введенных данных, а также были лишены специфических типов полей ввода для указания повседневной информации типа дат, адресов электронной почты и URL-адресов.

    HTML5-формы решили большинство этих распространенных проблем благодаря наличию новых атрибутов, предоставив возможность изменять внешний вид элементов форм за счет CSS3 .

    Рис. 1. Улучшенные веб-формы с помощью HTML5 Создание HTML5-формы 1. Элемент

    Основу любой формы составляет элемент ... . Он не предусматривает ввод данных, так как является контейнером, удерживая вместе все элементы управления формы – поля . Атрибуты этого элемента содержат информацию, общую для всех полей формы, поэтому в одну форму нужно включать поля, объединенные логически.

    Таблица 1. Атрибуты тега Атрибут Значение / описание
    accept-charset Значение атрибута представляет собой разделенный пробелами список кодировок символов , которые будут использоваться для отправки формы, например, .
    action Обязательный атрибут , который указывает url обработчика формы на сервере, которому передаются данные. Представляет из себя файл (например, action.php), в котором описано, что нужно делать с данными формы. Если значение атрибута не будет указано, то после перезагрузки страницы элементы формы примут значения по умолчанию.
    В случае, если вся работа будет выполняться на стороне клиента сценариями JavaScript, то для атрибута action можно указать значение # .
    Также можно сделать так, чтобы заполненная посетителем форма приходила вам на почту. Для этого нужно внести следующую запись:
    autocomplete

    enctype Используется для указания MIME -типа данных, отправляемых вместе с формой, например, enctype="multipart/form-data" . Указывается только в случае method="post" .
    application/x-www-form-urlencoded — тип содержимого по умолчанию, указывает на то, что передаваемые данные представляют список URL-кодированных переменных формы. Символы пробела (ASCII 32) будут закодированы как + , а специальный символ, например, такой как! будет закодирован шестнадцатиричной форме как %21 .
    multipart/form-data — используется для отправки форм, содержащих файлы, не-ASCII данные и бинарные данные, состоит из нескольких частей, каждая из которых представляет содержимое отдельного элемента формы.
    text/plain — указывает на то, что передается обычный (не html) текст.
    method Задает способ передачи данных формы.
    Метод get передает данные на сервер через адресную строку браузера. При формировании запроса к серверу все переменные и их значения формируют последовательность вида www.anysite.ru/form.php?var1=1&var2=2 . Имена и значения переменных присоединяются к адресу сервера после знака? и разделяются между собой знаком & . Все специальные символы и буквы, отличные от латинских, кодируются в формате %nn , пробел заменяется на + . Этот метод нужно использовать, если вы не передаете больших объемов информации. Если вместе с формой предполагается отправка какого-либо файла, этот метод не подойдет.
    Метод post применяется для пересылки данных больших объемов, а также конфиденциальной информации и паролей. Данные, отправляемые с помощью этого метода, не видны в заголовке URL, так как они содержатся в теле сообщения.
    name Задает имя формы , которое будет использоваться для доступа к элементам формы через сценарии, например, name="opros" .
    novalidate Отключает проверку в кнопке для отправки формы. Атрибут используется без указания значения
    target Указывает окно, в которое будет направлена информация:
    _blank — новое окно
    _self — тот же фрейм
    _parent — родительский фрейм (если он существует, если нет — то в текущий)
    _top — окно верхнего уровня по отношению к данному фрейму. Если вызов происходит не из дочернего фрейма, то в тот же фрейм.
    2. Группировка элементов формы

    Элемент ... предназначен для группировки элементов, связанных друг с другом, разделяя таким образом форму на логические фрагменты.

    Каждой группе элементов можно присвоить название с помощью элемента , который идет сразу за тегом . Название группы проявляется слева в верхней границе . Например, если в элементе хранится контактная информация:

    Контактная информация

    Имя *

    E-mail


    Рис. 2. Группировка элементов формы с помощью

    Таблица 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 Определяет имя, которое будет использоваться для доступа к элементу , к примеру, в таблицах стилей css. Является аналогом атрибута id .
    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 . Все размеры считаются исходя из размера одного символа моноширинного шрифта.

    Таблица 4. Атрибуты тега Атрибут Значение / описание
    autofocus Устанавливает фокус на нужном начальном текстовом поле автоматически.
    cols Устанавливает ширину через количество символов. Если пользователь вводит больше текста, появляется полоса прокрутки.
    disabled Отключает возможность редактирования и копирования содержимого поля.
    form Значение атрибута должно быть равно значению атрибута id элемента в этом же документе. Определяет одну или несколько форм, которым принадлежит данное текстовое поле.
    maxlength Значение атрибута задает максимальное число символов для ввода в поле.
    name Задает имя текстового поля.
    placeholder Определяет короткую текстовую подсказку, которая описывает ожидаемое вводимое значение.
    readonly Отключает возможность редактирования содержимого поля.
    required Выводит сообщение о том, что данное поле является обязательным для заполнения.
    rows Указывает число, которое означает, сколько строк должно отображаться в текстовой области.
    wrap Определяет, должен ли текст сохранять переносы строк при отправке формы. Значение hard сохраняет перенос, а значение soft не сохраняет. Если используется значение hard , то должно указываться значение атрибута cols .
    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 , то при загрузке станицы на соответствующих полях формы флажки уже будут установлены.

    Элемент применяется при реализации выбора с помощью переключателей и флажков. Можно выбрать нужный пункт, просто щелкая кнопкой мыши на тексте, связанном с ним. Для этого нужно поместить внутрь элемента .