Kodokon kodokon.com

Формы: input, label, select, textarea, button

Создавай полноценные, доступные и готовые к продакшену формы.

10 мин · 3 вопросов

Открыть этот урок в Kodokon

Форма - это вход почти в любое взаимодействие в вебе: регистрация, поиск, оформление заказа, обратная связь. Ты уже знаешь, как устроена страница; теперь переходим к практике. Начни с золотого правила: у каждого поля есть атрибут name, потому что именно он отправляется на сервер, а не id.

HTML
<form action="/subscribe" method="post">
  <label for="email">Email address</label>
  <input type="email" id="email" name="email" required>
  <button type="submit">Sign up</button>
</form>
Минимальная, но полноценная форма регистрации.

Посмотри на пару label / input: атрибут for у метки указывает на id поля. Эта связь необходима для программ чтения с экрана. Обрати внимание и на type="email": браузер бесплатно проверит формат и покажет на телефоне подходящую клавиатуру. Другие типы пригождаются каждый день: number, date, password, checkbox, radio.

HTML
<label for="country">Country</label>
<select id="country" name="country" required>
  <option value="">-- Choose a country --</option>
  <option value="fr">France</option>
  <option value="ca">Canada</option>
</select>

<label for="message">Your message</label>
<textarea id="message" name="message" rows="5"></textarea>
select - для закрытого списка, textarea - для свободного текста.

Последний участник: button. У него три типа: submit (отправляет форму), reset (очищает поля) и button (сам по себе ничего не делает - подключи его через JavaScript). Задача на подумать: в форме публикации статьи ты добавляешь кнопку «Предпросмотр», которая не должна отправлять данные. Какой тип ты ей дашь? Ответ: type="button".

HTML
<form action="/contact" method="post">
  <label for="topic">Subject</label>
  <select id="topic" name="topic">
    <option value="support">Technical support</option>
    <option value="billing">Billing</option>
  </select>

  <button type="submit">Send</button>
  <button type="button" id="preview-btn">
    Preview
  </button>
</form>
Две кнопки, два разных поведения.

Проверка знаний

Убедись, что запомнил ключевые моменты этого урока.

  1. Какой атрибут связывает label с его полем формы?
    • Атрибут for у метки, который указывает на id поля
    • Атрибут name, одинаковый у метки и у поля
    • Атрибут value у метки
    • Атрибут placeholder у поля
  2. Какой тип по умолчанию у кнопки без атрибута type внутри формы?
    • submit
    • button
    • reset
  3. Какой элемент использовать для ввода длинного многострочного текста?
    • input с type="text"
    • textarea
    • select
    • output