Атрибуты форм: action, method, name, value, placeholder, required, disabled

Введение в атрибуты форм 🌟

Формы — это мост между пользователем и сервером. Без них не было бы авторизации, поиска, комментариев и других интерактивных элементов. Но как формы понимают, куда отправлять данные и как их обрабатывать? Всё решают атрибуты! Сегодня разберём ключевые из них.


action: Куда отправляем? 🎯

Атрибут action указывает URL, куда отправятся данные формы после её заполнения. Если его не указать, данные уйдут на текущую страницу.

<form action="/submit-form">
  <!-- Поля формы -->
</form>

Пример из жизни:
Форма входа (/login) отправляет данные на сервер (/auth) для проверки.


method: GET или POST? 📤

Определяет способ отправки данных формы:

  • GET — данные добавляются в URL (видны в адресной строке).
    Подходит для поиска, фильтров.
<form action="/search" method="GET">
<input type="text" name="query">
</form>
При отправке URL станет: `/search?query=Python`
  • POST — данные скрыты в теле запроса.
    Используется для паролей, платежей.
<form action="/pay" method="POST">
<input type="password" name="card-pin">
</form>

name: Идентификатор поля 🏷️

Сервер получает данные в виде пар name=value. Без name поле не отправится!

<input type="text" name="username">

Если ввести Danila, сервер увидит: username=Danila.

Лайфхак:
Имена должны быть уникальными в пределах формы (кроме radio и checkbox).


value: Значение по умолчанию 💾

Задаёт начальное значение поля. Можно менять через JavaScript или вручную.

<input type="text" name="city" value="Москва">

Для чекбоксов/радио-кнопок value — это то, что отправится на сервер:

<input type="checkbox" name="subscribe" value="yes"> Подписаться

placeholder: Подсказка 🔍

Исчезает при вводе текста. Не заменяет <label>! Используется для примеров:

<input type="email" placeholder="email@example.com">

Важно:
Не злоупотребляйте — некоторые скринридеры игнорируют placeholder.


required: Обязательное поле ⚠️

Браузер не отправит форму, пока поле не заполнено. Работает без значения!

<input type="text" name="phone" required>

Совет:
Всегда дублируйте проверки на сервере — пользователь может отключить JavaScript.


disabled: Заблокированное поле 🔒

Поле недоступно для редактирования и не отправляется на сервер.

<input type="text" value="Только для чтения" disabled>

Отличие от readonly:
readonly позволяет выделять/копить текст, но тоже блокирует редактирование.


Практика: Собираем всё вместе 🧩

Форма регистрации с использованием всех атрибутов:

<form action="/register" method="POST">
  <input type="text" name="username" placeholder="Придумайте логин" required>
  <input type="email" name="email" placeholder="Ваш email" required>
  <input type="password" name="pwd" placeholder="Пароль" required>

  <select name="country">
    <option value="" disabled selected>Выберите страну</option>
    <option value="ru">Россия</option>
    <option value="us">США</option>
  </select>

  <button type="submit">Зарегистрироваться</button>
</form>

Разбор:
- Данные уходят на /register методом POST.
- Поля username, email, pwd обязательны.
- Выпадающий список начинается с заблокированной подсказки.


Итоги 🏁

  • action — цель отправки.
  • method — способ (GET/POST).
  • name — ключ для сервера.
  • value — данные по умолчанию.
  • placeholder — подсказка.
  • required — обязательное поле.
  • disabled — блокировка поля.

Теперь вы готовы создавать формы, которые не просто собирают данные, но и делают это правильно! Для углубления в тему смотрите разборы Данилы Бежина на YouTube.

Скрыть рекламу навсегда

📘 VK Видео — обучение без ограничений

Все уроки доступны без VPN, без блокировок и зависаний.

Можно смотреть с телефона, планшета или компьютера — в любое время.

▶️ Смотреть на VK Видео