Тег | HTML справочник
HTML тегиЗначение и применение
Форма в HTML это часть документа, которая позволяет пользователю ввести интересующую нас информацию, которую впоследствии можно принять и обработать на стороне сервера. Другими словами, формы используются для сбора информации введённой пользователями.
Синтаксически парный тег <form> определяет форму в HTML документе. Элемент <form> по большому счету просто является контейнером, внутри которого могут размещаться различные надписи, элементы управления и типы входных элементов, флажки, радио-кнопки, кнопки отправки и прочие HTML элементы.
Основная задача формы заключается в том, чтобы принять от пользователя входящую информацию и передать её для дальнейшей обработки на стороне сервера.
Элемент имеет следующий синтаксис:
<form> элементы формы </form>
Элемент <input> является основным элементом формы и определяет пользовательское поле для ввода информации.
Элемент <form> может содержать один или более следующих элементов формы:
- <input>
- <textarea>
- <button>
- <datalist>
- <select>
- <option>
- <optgroup>
- <fieldset>
- <label>
- <legend>
- <keygen>
- <meter>
- <output>
- <progress>
Поддержка браузерами
Тег | Chrome | Firefox | Opera | Safari | IExplorer | Edge |
---|---|---|---|---|---|---|
<form> | Да | Да | Да | Да | Да | Да |
Атрибуты
Атрибут | Значение | Описание |
---|---|---|
accept | file_type | Не поддерживается в HTML5. Определяет разделенный запятыми список типов файлов, которые принимает сервер (который может быть представлен через загрузку файлов). |
accept-charset | character_set | Определяет кодировку, используемую в представленной форме (значением по умолчанию является зарезервированная строка «unknown» |
action | URL | Определяет адрес, куда отправляется форма (по умолчанию действие установлено на текущую страницу). |
autocomplete | on off | Указывает может ли браузер автоматически заполнять элементы формы (по умолчанию — включен). Этот атрибут помогает заполнять поля форм текстом, который был введён в них ранее (если не отключено настройками браузера). |
enctype | application/x-www-form-urlencoded multipart/form-data text/plain | Определяет способ кодирования данных формы при их отправке. |
method | get post | Атрибут определяет какой метод HTTP (get или post) используется при передаче формы. Метод get используется по умолчанию. |
name | text | Определяет имя формы, которое используется для идентификации (задает имя для формы). |
novalidate | novalidate | Указывает, что проверка данных на корректность, введенных пользователем в форму не производится. |
target | _blank _parent _top framename | При помощи атрибута мы задаём браузеру, где показать ответ, полученный после отправки формы (вкладка, текущее окно, или фрейм). По умолчанию установлено значение _self — отображает ответ в текущем окне. |
Пример использования
<!DOCTYPE html> <html> <head> <title>Пример использования HTML форм</title> </head> <body> <form> Имя: <input type = "text" name = "firstname" value = "Введите имя"> <br> <br> Фамилия: <input type = "text" name = "lastname" value = "Введите фамилию"> <br> <br> Мужчина <input type = "radio" name = "sex" value = "male" checked> Женщина <input type = "radio" name = "sex" value = "female"> <br> <br> О себе: <br> <input type = "checkbox" name = "type1" value = "low">Меньше 18<br> <input type = "checkbox" name = "type2" value = "2old">От 18 до 35<br> <input type = "checkbox" name = "type3" value = "high">Больше 35<br> <input type = "checkbox" name = "type4" value = "busy">Женат /-а<br> <input type = "checkbox" name = "type5" value = "cat">Есть кошка<br> <br> <input type = "submit" name = "submit" value = "отправить"> </form> </body> </html>
И так по порядку, что мы сделали в этом примере:
- Разместили
два однострочных текстовых поля (<input type = «text»>) для ввода пользователем своего имени и фамилии. Присвоили этим полям уникальные имена атрибутом name (для корректной передачи и обработки формы обязательно указывайте для каждого элемента <input> этот атрибут). Кроме того атрибутом value установили для этих полей значения по умолчанию (при заполнении полей значение этого атрибута будет соответствовать пользовательскому вводу). - Разместили две радиокнопки (<input type = «radio»>) для выбора одного из ограниченного числа вариантов. Обратите внимание, что для радиокнопок
- Разместили пять флaговых кнопок (чекбоксов), которые позволяют пользователям указать необходимые параметры (выбрать необходимые значения).
- Заключительный элемент, который мы разместили внутри формы это кнопка, которая служит для отправки формы (<input type = «submit»>).
Результат нашего примера в браузере:
Пример использования HTML форм (элемент <form>).Отличия HTML 4.01 от HTML 5
В HTML5 добавлены два новых атрибута: autocomplete и novalidate, атрибут accept был удалён.Значение CSS по умолчанию
form { display: block; margin-top: 0; }
Поддержка глобальных атрибутов
Элемент поддерживает «глобальные атрибуты».
Атрибуты событий
Элемент поддерживает «атрибуты событий».
Формы. Теги форм
Формы есть на всех сайтах, которые предоставляют возможность поиска по сайту или имеют страницу (блок) «Контакты». Создаются формы с помощью тега <form> и ряда тегов <input>, которые имеют разный атрибут type, и в зависимости от него отвечают за разные поля ввода или другие элементы (радиокнопки, флажки).
Рассмотрим, как формируются поля форм и как можно использовать плагин Emmet для ускорения набора кода форм в вашем редакторе кода.
Тег form
Итак, основной тег <form> — является блочным (имеет свойство display: block). Закрывающий тег обязателен. Размещать внутри тега <form> можно любые другие html-теги, которые, как правило, служат для форматирования полей формы и их заголовков.
Основными атрибутами являются action=»путь к php-файлу» и method=»get|post»:
Emmet abbr: form <form action=»contact.php»></form> Emmet abbr: form:get <form action=»» method=»get»></form> Emmet abbr: form:post <form action=»» method=»post»></form>
1 2 3 4 5 6 7 8 | Emmet abbr: form <form action=»contact.php»></form>
Emmet abbr: form:get <form action=»» method=»get»></form>
Emmet abbr: form:post <form action=»» method=»post»></form> |
В атрибуте action должен быть записан абсолютный или относительный путь к файлу, как правило серверного скрипта, например, php или asp, который будет обрабатывать значения полей, отправленных формой.
Метод get или post определяет, каким образом будут отправлены данные. Метод
Текстовые поля и их разновидности
Вы наверняка сталкивались с заполнением полей с подписью Имя (Логин), Email, Пароль и, возможно загружали что-либо с помощью кнопки «Обзор» в текстовом поле. Все они формируются с помощью тега <input>. Рассмотрим для них аббревиатуры Emmet:
Emmet abbr: input <input type=»text» /> Emmet abbr: inp <input type=»text» name=»» /> Emmet abbr: input:text, input:t ( аналогично inp) <input type=»text» name=»» /> Emmet abbr: input:hidden, input:h (аналог [type=hidden]) <input type=»hidden» name=»» /> Emmet abbr: input:search (аналог inp[type=search]) <input type=»search» name=»» /> Emmet abbr: input:email (аналог inp[type=email]) <input type=»email» name=»» /> Emmet abbr: input:url (аналог inp[type=url]) <input type=»url» name=»» /> Emmet abbr: input:password, input:p (аналог inp[type=password]) <input type=»password» name=»» /> Emmet abbr: input:file, input:f (аналог inp[type=file]) <input type=»file» name=»» />
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 | Emmet abbr: input <input type=»text» />
Emmet abbr: inp <input type=»text» name=»» />
Emmet abbr: input:text, input:t ( аналогично inp) <input type=»text» name=»» />
Emmet abbr: input:hidden, input:h (аналог [type=hidden])
<input type=»hidden» name=»» />
Emmet abbr: input:search (аналог inp[type=search]) <input type=»search» name=»» />
Emmet abbr: input:email (аналог inp[type=email]) <input type=»email» name=»» />
Emmet abbr: input:url (аналог inp[type=url]) <input type=»url» name=»» />
Emmet abbr: input:password, input:p (аналог inp[type=password]) <input type=»password» name=»» />
Emmet abbr: input:file, input:f (аналог inp[type=file]) <input type=»file» name=»» /> |
Среди перечисленных полей большинство относится к спецификации HTML4. HTML5 ввел такие поля, как search, url, email соответственно для полей, предназначенных для поиска информации, ввода адреса сайта или email-a.
Внутри этих полей реализована проверка правильности ввода, например, соответствие email-адреса общепринятому, т.е. наличие символа @, например. Если вы введете неверный email или url, браузер подсветит это поле красным (как правило) и при нажатии на кнопку отправки формы попросит вас корректно ввести адрес почты или адрес сайта, который начинается с http://.
Желательно еще добавлять в поле атрибут required, т.е. обязательный, для того чтобы это поле было заполнено пользователем.
Теги кнопок
Кнопки, как правило, завершают любую форму. Добавляются в форму с помощью тега <input>. Они бывают нескольких типов (атрибут type):
- submit — отправляет форму на сервер. Пожалуй, главная кнопка в форме.
- reset — очищает поля формы до значений по умолчанию. Сейчас используется все реже и реже.
- button — обычная кнопка, с которой, как правило, связан код на JavaScript.
- image — аналог кнопки submit, но с атрибутом src=»путь к файлу изображения», который позволяет указать картинку, которая будет заменять кнопку. Был очень актуален до CSS3, т.к. позволял сделать кнопку-изображение с закругленными краями и градиентом. Сейчас используется редко, т.к. возможности CSS3 уже позволяют сделать очень многое с помощью правил форматирования.
Также вы можете использовать тег <button>, который в обычном виде является аналогом тега <input type=»button»>, но может также иметь свой атрибут type=»submit» | «reset» | «image», соответствующие аналогичным в теге <input>.
Рассмотрим применение Emmet для вставки тегов кнопок:
Аббревиатуры Emmet для кнопокEmmet abbr: input:submit, input:s <input type=»submit» value=»» /> Emmet abbr: input:reset (аналог input:button[type=reset]) <input type=»reset» value=»» /> Emmet abbr: input:button, input:b <input type=»button» value=»» /> Emmet abbr: input:image, input:i <input type=»image» src=»» alt=»» /> Emmet abbr: button:submit, button:s, btn:s (аналог button[type=submit]) <button type=»submit»></button> Emmet abbr: button:reset, button:r, btn:r (аналог button[type=reset]) <button type=»reset»></button> Emmet abbr: button:disabled, button:d, btn:d (аналог button[disabled. ]) <button disabled=»disabled»></button>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | Emmet abbr: input:submit, input:s <input type=»submit» value=»» />
Emmet abbr: input:reset (аналог input:button[type=reset]) <input type=»reset» value=»» />
Emmet abbr: input:button, input:b <input type=»button» value=»» />
Emmet abbr: input:image, input:i <input type=»image» src=»» alt=»» />
Emmet abbr: button:submit, button:s, btn:s (аналог button[type=submit]) <button type=»submit»></button>
Emmet abbr: button:reset, button:r, btn:r (аналог button[type=reset]) <button type=»reset»></button>
Emmet abbr: button:disabled, button:d, btn:d (аналог button[disabled. ]) <button disabled=»disabled»></button> |
Флажки (checkboxes)
Предназначены для множественного выбора элементов. Например, в форме необходимо отметить, какие языки вы знаете из перечисленных.
Русский
Украинский
Белорусский
Английский
Немецкий
Французский
Для оформления флажков часто используются теги label. Поскольку элемент типа checkbox также является одним из вариантов тега input, то текст, который размещен рядом с флажком, как бы к нему не относится. А тег label позволяет указать принадлежность текста инпуту — для этого в label записывается атрибут for cо значением в виде id соответствующего <input type=»checkbox»>. С одной стороны, тег label при клике на тексте позволяет выделить соответствующий флажок, с другой — label помогают в форматировании внешнего вида текста. Для них часто задают margin, padding, font-family, color и др. css-свойства.
Обратите внимание, как в разметке использованы теги input и label, а также на css-правила для label в тегах <style>:
checkboxes<style> .form-line { margin-bottom: 10px; } label { display: inline-block; vertical-align: top; margin-left: 10px; } </style> <form name=»langForm»> <div> <input type=»checkbox» name=»lang1″ value=»ru» checked> <label for=»lang1″>Русский</label> </div> <div> <input type=»checkbox» name=»lang2″ value=»ua» checked> <label for=»lang2″>Украинский</label> </div> <div> <input type=»checkbox» name=»lang3″ value=»by»> <label for=»lang3″>Белорусский</label> </div> <div> <input type=»checkbox» name=»lang4″ value=»en»> <label for=»lang4″>Английский</label> </div> <div> <input type=»checkbox» name=»lang5″ value=»gr»> <label for=»lang5″>Немецкий</label> </div> <div> <input type=»checkbox» name=»lang6″ value=»fr»> <label for=»lang6″>Французский</label> </div> </form>
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 36 37 | <style> . form-line { margin-bottom: 10px; } label { display: inline-block; vertical-align: top; margin-left: 10px; } </style> <form name=»langForm»> <div> <input type=»checkbox» name=»lang1″ value=»ru» checked> <label for=»lang1″>Русский</label> </div> <div> <input type=»checkbox» name=»lang2″ value=»ua» checked> <label for=»lang2″>Украинский</label> </div> <div>
<input type=»checkbox» name=»lang3″ value=»by»> <label for=»lang3″>Белорусский</label> </div> <div> <input type=»checkbox» name=»lang4″ value=»en»> <label for=»lang4″>Английский</label> </div> <div> <input type=»checkbox» name=»lang5″ value=»gr»> <label for=»lang5″>Немецкий</label> </div> <div> <input type=»checkbox» name=»lang6″ value=»fr»> <label for=»lang6″>Французский</label> </div> </form> |
Для того чтобы выделить какой-либо флажок по умолчанию, для него используют атрибут checked (т. е. выбранный).
<input type=»checkbox» name=»lang1″ value=»ru» checked> <label for=»lang1″>Русский</label>
<input type=»checkbox» name=»lang1″ value=»ru» checked> <label for=»lang1″>Русский</label> |
Emmet аббревиатуры для checkbox и label:
Emmet для checkboxinput:checkbox, input:c <input type=»checkbox» name=»|»> label <label for=»|»></label>
input:checkbox, input:c <input type=»checkbox» name=»|»>
label <label for=»|»></label> |
Для оформления checkbox-ов существует довольно много рецептов и плагинов. Большая часть из них собрана в этой статье, но также вы можете посмотреть примеры оформления флажков с ресурса codepen. io.
Переключатели или радио-кнопки (radio)
Предназначены для одиночного выбора среди нескольких вариантов. Например, в форме необходимо отметить, какой работой вы занимаетесь и работаете ли вообще.
Работаю постоянно
Работа временная или сезонная
Не работаю
Сижу дома с ребенком
Учусь
Отличие переключателей от флажков заключается не только во внешнем виде.
Для того чтобы организовать единичный выбор из множества вариантов, у группы переключателей должно быть одно и то же имя, т.е. атрибут name одинаков для всех radio-кнопок данного блока:
Группа переключателей radio<form name=»jobForm»> <div> <input type=»radio» name=»job»> <label for=»job1″>Работаю постоянно</label> </div> <div> <input type=»radio» name=»job»> <label for=»job2″>Работа временная или сезонная</label> </div> <div> <input type=»radio» name=»job»> <label for=»job3″>Не работаю</label> </div> <div> <input type=»radio» name=»job»> <label for=»job4″>Сижу дома с ребенком</label> </div> <div> <input type=»radio» name=»job»> <label for=»job5″>Учусь</label> </div> </form>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <form name=»jobForm»> <div> <input type=»radio» name=»job»> <label for=»job1″>Работаю постоянно</label> </div> <div> <input type=»radio» name=»job»> <label for=»job2″>Работа временная или сезонная</label> </div> <div> <input type=»radio» name=»job»> <label for=»job3″>Не работаю</label> </div> <div> <input type=»radio» name=»job»> <label for=»job4″>Сижу дома с ребенком</label> </div> <div> <input type=»radio» name=»job»> <label for=»job5″>Учусь</label> </div> </form> |
Обратите внимание, что у всех <input type=»radio»> атрибут name=»job», а вот id разные, т. к. они связаны с тегом label.
Emmet аббревиатуры для radio:
Emmet для radioinput:radio, input:r, inp[type=radio] <input type=»radio» name=»|»>
input:radio, input:r, inp[type=radio]
<input type=»radio» name=»|»> |
Кстати, предыдущий пример можно полностью оформить в виде тегов с помощью аббревиатуры Emmet. Придется только текст в label дописать:
form[name=»jobForm»]>.form-line*5>input:r[name=job][id=»job$»]+label[for=»job$»]
form[name=»jobForm»]>.form-line*5>input:r[name=job][id=»job$»]+label[for=»job$»] |
Скопируйте аббревиатуру и нажмите клавишу Tab в самом конце (без пробела), чтобы ее раскрыть.
Пример оформления радио-кнопок с анимацией при переключении:
See the Pen Jelly Radio Button by Tommaso Poletti (@tomma5o) on CodePen. 18892
Просмотров: 856
Полное руководство по тегу формы HTML
Тег формы HTML требуется, когда вы хотите собирать информацию, которую предоставляют посетители. Например, вы можете захотеть собрать определенные данные о посетителях, такие как имя, адрес электронной почты и пароль.
Тег HTML