<form>¶
Тег <form>
(от англ. form - форма) устанавливает форму на веб-странице.
Форма предназначена для обмена данными между пользователем и сервером. Область применения форм не ограничена отправкой данных на сервер, с помощью клиентских скриптов можно получить доступ к любому элементу формы, изменять его и применять по своему усмотрению.
Документ может содержать любое количество форм, но одновременно на сервер может быть отправлена только одна форма. По этой причине данные форм должны быть независимы друг от друга.
Для отправки формы на сервер используется кнопка Submit, того же можно добиться, если нажать клавишу Enter в пределах формы. Если кнопка Submit отсутствует в форме, клавиша Enter имитирует её использование.
Когда форма отправляется на сервер, управление данными передаётся программе, заданной атрибутом action элемента <form>
. Предварительно браузер подготавливает информацию в виде пары «имя=значение
», где имя определяется атрибутом name элемента <input>
, а значение введено пользователем или установлено в поле формы по умолчанию. Если для отправки данных используется метод GET, то адресная строка может принимать следующий вид.
1 |
|
Параметры перечисляются после вопросительного знака, указанного после адреса серверной программы и разделяются между собой символом амперсанда (&
). Русские буквы преобразуются в шестнадцатеричное представление (в форме %HH
, где HH — шестнадцатеричный код для значения ASCII-символа), пробел заменяется на плюс (+
).
Допускается внутрь контейнера <form>
помещать другие элементы, при этом сама форма никак не отображается на веб-странице, видны только элементы внутри неё.
Демо¶
Формы
Синтаксис¶
1 |
|
Закрывающий тег обязателен.
Атрибуты¶
accept-charset
-
Устанавливает кодировку, в которой сервер может принимать и обрабатывать данные.
action
-
Адрес программы или документа, который обрабатывает данные формы.
autocomplete
-
Включает автозаполнение полей формы.
enctype
-
Способ кодирования данных формы.
method
-
Метод протокола HTTP.
name
-
Имя формы.
novalidate
-
Отменяет встроенную проверку данных формы на корректность ввода.
target
-
Имя окна или фрейма, куда обработчик будет загружать возвращаемый результат.
Также для этого элемента доступны универсальные атрибуты.
accept-charset¶
Устанавливает кодировку, в которой сервер может принимать и обрабатывать данные формы.
Синтаксис
1 |
|
Значения
Название кодировки, например Windows-1251
, UTF-8
и др.
Значение по умолчанию
Кодировка, установленная для страницы.
action¶
Указывает обработчик, к которому обращаются данные формы при их отправке на сервер. В качестве обработчика может выступать серверная программа или HTML-документ, который включает в себя серверные сценарии (например, Parser). После выполнения обработчиком действий по работе с данными формы он возвращает новый HTML-документ.
Если атрибут action
отсутствует, текущая страница перезагружается, возвращая все элементы формы к их значениям по умолчанию.
Синтаксис
1 |
|
Значения
В качестве значения принимается полный или относительный путь к серверному файлу.
Значение по умолчанию
Нет.
autocomplete¶
Управляет автозаполнением полей форм. Значение может быть перекрыто атрибутом autocomplete
у конкретных элементов формы.
Автозаполнение производит браузер, который запоминает написанные при первом вводе значения, а затем подставляет их при повторном наборе в поля формы. При этом автозаполнение может быть отключено в настройках браузера и не может быть в таком случае изменено при помощи атрибута autocomplete
.
При вводе первых букв текста отображается список сохранённых ранее значений, из которого можно выбрать необходимое.
Синтаксис
1 |
|
Значения
on
-
Включает автозаполнение формы.
off
-
Отключает автозаполнение. Это значение обычно используется для отмены сохранения в браузере важных данных (паролей, номеров банковских карт), а также редко вводимых или уникальных данных (капча).
Значение по умолчанию
on
enctype¶
Определяет способ кодирования данных формы при их отправке на сервер. Обычно устанавливать значение атрибута enctype
не требуется, данные вполне правильно понимаются на стороне сервера. Однако если используется поле для отправки файла (input type="file"
), следует определить атрибут enctype
как multipart/form-data
.
Синтаксис
1 2 3 4 5 |
|
Значения
application/x-www-form-urlencoded
-
Вместо пробелов ставится
+
, символы вроде русских букв кодируются их шестнадцатеричными значениями (например,%D0%90%D0%BD%D1%8F
вместо Аня). multipart/form-data
-
Данные не кодируются. Это значение применяется при отправке файлов.
text/plain
-
Пробелы заменяются знаком
+
, буквы и другие символы не кодируются.
Значение по умолчанию
application/x-www-form-urlencoded
method¶
Атрибут method
сообщает серверу о методе запроса.
Синтаксис
1 |
|
Значения
Значение атрибута method
не зависит от регистра. Различают два метода — get
и post
.
get
-
Этот метод является одним из самых распространённых и предназначен для получения требуемой информации и передачи данных в адресной строке. Пары «
имя=значение
» присоединяются в этом случае к адресу после вопросительного знака и разделяются между собой амперсандом (символ&
). Удобство использования методаget
заключается в том, что адрес со всеми параметрами можно использовать неоднократно, сохранив его, например, в закладки браузера, а также менять значения параметров прямо в адресной строке. post
-
Метод
post
посылает на сервер данные в запросе браузера. Это позволяет отправлять большее количество данных, чем доступно методуget
, поскольку уpost
не установлено ограничение в 4 Кб. Большие объёмы данных используются в форумах, почтовых службах, заполнении базы данных, при пересылке файлов и др.
Значение по умолчанию
get
name¶
Определяет уникальное имя формы. Как правило, имя формы используется для доступа к её элементам через скрипты.
Синтаксис
1 |
|
Значения
В качестве имени используется набор символов, включая числа и буквы. JavaScript чувствителен к регистру, поэтому при обращении к форме по имени через скрипты соблюдайте то же написание, что и в атрибуте name
.
Значение по умолчанию
Нет.
novalidate¶
Отменяет встроенную проверку данных введённых пользователем в форме на корректность. Такая проверка осуществляется браузером автоматически при отправке формы на сервер и происходит для полей <input type="email">
, <input type="url">
, а также при наличии атрибута pattern
или required
.
Синтаксис
1 |
|
Значения
Нет.
Значение по умолчанию
По умолчанию этот атрибут выключен.
target¶
После того, как обработчик формы получает данные, он возвращает результат в виде HTML-документа. Вы можете определить фрейм, в который будет загружаться итоговая веб-страница. Для этого используется атрибут target
, в качестве его значения указывается имя фрейма. Если target
не установлен, возвращаемый результат показывается в текущей вкладке.
Синтаксис
1 |
|
Значения
В качестве значения используется имя фрейма, заданное атрибутом name элемента <iframe>
. Если установлено несуществующее имя, то будет открыта новая вкладка. В качестве зарезервированных имён можно указывать следующие.
_blank
-
Загружает страницу в новую вкладку браузера.
_self
-
Загружает страницу в текущую вкладку.
_parent
-
Загружает страницу во фрейм-родитель; если фреймов нет, то это значение работает как
_self
. _top
-
Отменяет все фреймы и загружает страницу в окне браузера; если фреймов нет, то это значение работает как
_self
.
Значение по умолчанию
_self
Спецификации¶
Описание и примеры¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
|
Ссылки¶
- Тег
<form>
MDN (рус.)