edubun
Русский

Основы форм

Нажми на слово Email рядом с хорошо сделанным полем формы, и курсор прыгнет в поле. Эта маленькая деталь и есть работа элемента label.

Что делает форма

Строки поиска, страницы регистрации и оформления заказа являются формами. Элемент <form> группирует элементы управления, и когда посетитель отправляет форму, браузер посылает name каждого элемента вместе с его значением по адресу из атрибута action формы. Атрибут method говорит, как: get кладёт данные в адрес, что подходит для поиска, который можно сохранить в закладки, а post отправляет их в теле запроса, что подходит для всего, что меняет данные, например заказа. HTML строит форму, а программа на сервере решает, что делать с пришедшими данными.

<form action="/subscribe" method="post">
  <label for="name">Name</label>
  <input id="name" name="name" type="text" autocomplete="name">

  <label for="email">Email</label>
  <input id="email" name="email" type="email" required autocomplete="email">

  <button type="submit">Subscribe</button>
</form>
Каждая подпись связана со своим полем совпадающими значениями for и id.

Каждому элементу управления нужна подпись

Элемент <label> даёт имя элементу управления. Свяжи их, дав полю id, а подписи совпадающий атрибут for, или поместив поле внутрь подписи. Связь даёт две вещи. Экранный диктор читает подпись, когда поле получает фокус, и пользователь слышит «Email, редактируемый текст», а не просто «редактируемый текст». А щелчок по подписи ставит фокус в поле или отмечает флажок, что даёт каждому, особенно на телефоне, цель побольше. placeholder (серая подсказка внутри поля) подписью не является: он исчезает, как только начинаешь печатать, часто плохо контрастирует, а некоторые вспомогательные технологии его игнорируют.

Типы полей

Атрибут type у <input> меняет элемент управления. text является однострочным полем по умолчанию. email, tel и url выглядят похоже, но на телефонах показывают подходящую клавиатуру, а браузер проверяет, что адрес почты имеет правильную форму. number принимает цифры, и у него могут быть min и max. password скрывает вводимое, date предлагает календарь, а checkbox и radio являются полями для отметки. Для длинного текста используй <textarea>, а для выбора из списка <select> с элементами <option> внутри.

Группировка вариантов

Переключатели (radio), относящиеся к одному вопросу, имеют одинаковый name, и выбрать можно только один из них. Оберни группу в <fieldset>, а вопрос помести в <legend>. Тогда экранный диктор прочитает вопрос вместе с каждым вариантом: «Loaf size, Small, переключатель, 1 из 2». У каждого переключателя всё равно своя подпись.

Кнопки и встроенные проверки

<button> внутри формы по умолчанию отправляет её. Запись type="submit" делает это явным, а type="button" создаёт кнопку, которая ничего не делает, пока JavaScript не даст ей работу. Перед отправкой браузер может проверить поля за тебя. required останавливает форму, если поле пустое, type="email" отвергает текст без @, а minlength, min и max задают пределы. Эти проверки помогают посетителю исправить ошибки заранее, но выполняются в его браузере и их можно обойти, поэтому сервер должен проверить данные ещё раз. Атрибут autocomplete со значениями вроде email или name позволяет браузеру подставить сохранённые данные. Это экономит набор всем и особенно помогает людям с трудностями движения или памяти.

В редакторе ниже форма показана в песочнице, так что кнопка Subscribe никуда ничего не отправляет. Кнопка «Проверить» смотрит только на твой HTML.
formГруппирует элементы управления и отправляет их имена и значения
labelДаёт имя элементу управления; for совпадает с id поля
nameКлюч, который отправляется на сервер вместе со значением
requiredПоле нужно заполнить перед отправкой
fieldset / legendГруппирует связанные элементы управления под одним вопросом
placeholderПодсказка внутри поля; не подпись
method="post"Отправляет данные в теле запроса; для изменений, например заказов
  1. У label стоит for="phone". К какому полю она относится?
    • К полю с id="phone"
    • К полю с name="phone"
    • К следующему полю, какой бы ни был у него id
  2. Почему placeholder недостаточно в роли подписи?
    • Он исчезает при наборе и часто плохо контрастирует
    • Это неправильный HTML
    • Он ничего не отправляет
  3. Какой тип поля показывает на телефоне клавиатуру для почты и проверяет @?
  4. Два переключателя должны исключать друг друга. Что у них должно быть общим?
    • name
    • id
    • value
  5. Какой элемент хранит вопрос для fieldset?
    • legend
    • caption
    • label
  6. Какой метод подходит для формы поиска, которую можно сохранить в закладки?
    • get
    • post
  7. Браузер проверяет обязательные поля. Нужно ли серверу проверять ещё раз?
    • Да, проверки браузера можно обойти
    • Нет, браузера достаточно
    • Только для паролей
  8. Какой элемент подходит для многострочного сообщения?
    • textarea
    • input type="text"
    • select
  9. Что делает щелчок по правильно связанной подписи?
    • Ставит фокус в её поле или отмечает флажок
    • Отправляет форму
    • Очищает поле
  10. Какой атрибут позволяет браузеру подставить сохранённый адрес почты?
    • autocomplete="email"
    • placeholder="email"
    • value="email"
Главное
  • form отправляет имя и значение каждого элемента управления на action методом get или post.
  • У каждого элемента управления есть label (for совпадает с id); placeholder подписью не является.
  • Выбирай правильный type; группируй переключатели через fieldset и legend; сервер проверяет ещё раз.
Источники курса (10)
  • WHATWG, HTML Living Standard (html.spec.whatwg.org, checked 2026-10-17)
  • MDN Web Docs, Learn web development: Structuring content with HTML, and the HTML element reference (developer.mozilla.org/en-US/docs/Learn_web_development/Core/Structuring_content and developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements, checked 2026-10-17)
  • MDN, HTML images (alt text guidance, checked 2026-10-17)
  • W3C WAI, Images tutorial and alt decision tree (w3.org/WAI/tutorials/images/decision-tree, checked 2026-10-17)
  • CERN, A short history of the Web (home.cern/science/computing/the-birth-of-the-web/short-history-web/, checked 2026-10-17)
  • W3C and WHATWG memorandum of understanding, 28 May 2019 (w3.org/2019/04/WHATWG-W3C-MOU.html, checked 2026-10-17)
  • W3C, Using ARIA, first rule of ARIA use (w3.org/TR/using-aria/, checked 2026-10-17)
  • W3C Markup Validation Service (validator.w3.org, checked 2026-10-17)
  • MDN, Viewport meta element (checked 2026-10-17)
  • Every code exercise was checked with a Playwright probe against a reference solution.

Проверено: 2026-10-17