🚀 Сегодня вам бесплатно доступен тренажёр по HTML и CSS.

Когда пользователю нужно что-то ввести или выбрать на странице, скорее всего, вы будете использовать <input>. Тег <input> настраивается с помощью атрибута type.

text и password. Это, наверное, самые часто используемые типы полей ввода. Это простые текстовые поля. password отличается тем, что скрывает введенные символы.

<input type="text" name="username" placeholder="Юзернейм">
<input type="password" name="password" placeholder="Пароль">

radio и checkbox. С помощью radio пользователи выбирают один вариант из нескольких, а с помощью checkbox — ставят галочку, это может быть как одиночный выбор, так и множественный. Очень важно, чтобы у радиокнопок было одинаковое имя (name), чтобы группировать их.

<input type="radio" name="animal" value="cat"> Кошка
<input type="radio" name="animal" value="dog"> Собака
<input type="checkbox" name="subscribe"> Подписаться на новости

submit — кнопка для отправки формы. Обычно ставится в конце формы. Хотя на практике часто используют <button type="submit">, так как кнопку проще стилизовать.

<input type="submit" value="Отправить">

Если пользователю нужно загрузить файл, используйте тип <file>. Но помните про безопасность и валидацию загружаемых файлов на сервере!

<input type="file" name="userphoto">

Тип <hidden> используется, когда вы хотите передать какие-то скрытые данные, которые не должны отображаться пользователю. Такое поле не видно на странице.

<input type="hidden" name="userid" value="12345">

number, date, range полезны, когда нужно предоставить пользователю возможность ввода числа, даты или выбора значения из диапазона. Но будь осторожен: браузеры могут отображать их по-разному, и не всегда это выглядит хорошо без дополнительной стилизации.

Есть и другие типы, такие как tel, email, url, но на практике они используются реже. Их основная идея — обеспечить ввод для конкретных данных.

Важные атрибуты

С помощью атрибута name сервер определяет, какие именно данные пришли.

placeholder полезен для коротких подсказок. Но это не замена для <label>. Всегда используйте подписи у полей ввода!

Если поле обязательно для заполнения, добавьте атрибут required.

Атрибут value устанавливает начальное значение поля.

Полезные ссылки

📝 HTML Standard — 4.10.5 The input element

📄 Готовый шаблон HTML-формы

3 способа валидации форм