Многострочное поле
Оригинальное название: textarea
Коротко
Элемент формы textarea для ввода текста в несколько строк — комментария, сообщения, адреса доставки. Сохраняет переносы строк, которые набрал пользователь.
Что такое «Многострочное поле»
Однострочное поле ввода подходит для имени, телефона или e-mail. Для всего, что длиннее фразы, нужен textarea: в нём можно нажимать Enter, текст переносится по словам, а при необходимости появляется прокрутка. Это стандартное поле для «Комментария к заказу», текста отзыва, описания задачи в форме заявки.
В отличие от input, у textarea нет атрибута value: значение по умолчанию пишут между открывающим и закрывающим тегами. Отсюда частая ошибка — отступы и переносы внутри тега тоже попадают в поле.
Пример разметки
<label for="msg">Опишите задачу</label>
<textarea id="msg" name="message" rows="5"
maxlength="2000" required></textarea>
<style>
textarea { width: 100%; min-height: 6em; resize: vertical; }
</style>
rowsиcolsзадают начальный размер в строках и символах, но ширину обычно задают CSS.maxlengthиminlengthограничивают длину текста.wrap="hard"вставляет реальные переносы при отправке там, где строка перенеслась визуально; по умолчаниюsoft.- Свойство CSS
resizeразрешает или запрещает растягивать поле мышью.
В браузерах на Chromium появилось свойство field-sizing: content, при котором поле растёт по мере набора текста. Поддерживается оно пока не везде, поэтому остальным браузерам нужен запасной вариант с фиксированной высотой или небольшим скриптом.
Как обработать на сервере
Перевод строки браузер отправляет как пару символов \r\n. При выводе введённого текста его сначала экранируют, а затем превращают переносы в теги: в PHP это nl2br( esc_html( $text ) ) для WordPress. Для очистки в WordPress есть sanitize_textarea_field() — в отличие от sanitize_text_field(), она сохраняет переносы строк.
Чего избегать
- Подсказка только в
placeholderбез метки поля: при наборе текста она исчезает. resize: noneбез запаса высоты — длинный текст становится неудобно проверять.- Крошечное поле в две строки там, где ждут развёрнутый ответ: человек подсознательно пишет меньше.
Куда дальше попадает текст из поля — на почту, в CRM или 1С, — описано в статье о приёме заявок с сайта.

