Кратко
СкопированоТег <textarea>
используется для создания многострочного поля ввода. Например, поля ввода комментария. При необходимости поле может иметь изменяемый размер.
Пример
Скопировано<label for="story">Расскажите о себе:</label><textarea id="story" name="story" rows="5" cols="33">Frontend-разработчик со стажем</textarea>
<label for="story">Расскажите о себе:</label> <textarea id="story" name="story" rows="5" cols="33">Frontend-разработчик со стажем</textarea>
Как понять
СкопированоНа сайтах часто встречаются формы, где нужно писать многострочный текст. Например, когда нужно оставить комментарий, написать отзыв или статью. Для этих целей используется многострочное поле ввода, которое верстается тегом <textarea>
. Нужно отметить, что в этом поле можно писать только чистый текст. Панели стилизации текста, как в Ворде, являются дополнительными надстройками с использованием JavaScript.
Атрибуты
Скопированоautocomplete
СкопированоАтрибут, указывающий, нужно ли поле заполнять автоматически сохранёнными в браузере значениями. Полезно использовать, если одна и та же форма потенциально будет часто отправляться с одинаковыми значениями.
Значения атрибута:
on
— поле будет автоматически заполняться значением, сохранённым в браузере во время предыдущей отправки формы
off
— поле не будет заполняться браузером автоматически. Также, это значение нужно использовать, если документ предоставляет собственный метод автозаполнения полей.
Если атрибут не указать совсем, то браузер будет брать значение из атрибута autocomplete
родительского элемента <form>
, либо — если родительской формы нет — из той формы, на id
которой ссылается атрибут form
.
<textarea autocomplete="off"></textarea>
<textarea autocomplete="off"></textarea>
autofocus
СкопированоАтрибут булевого типа (без значения, либо атрибут есть в теге, либо его нет совсем). Если он указан, то при загрузке страницы фокус будет автоматически помещён в данное поле ввода.
<textarea autofocus></textarea>
<textarea autofocus></textarea>
cols
СкопированоЗадаёт ширину поля ввода в символах. Если атрибут задан, то должен иметь значением целое положительное число. Если не задан, то по умолчанию берётся как 20
disabled
СкопированоАтрибут булевого типа. Если задан, то поле отключается для взаимодействия с пользователем. Если атрибут не задан, то он может быть унаследован у одного из предков (например у контейнера <fieldset>
или <form>
). Если ни у одного предка вверх по дереву этот атрибут не задан, то поле доступно для редактирования.
При отправке формы значения из disabled-полей не будут отправлены.
form
СкопированоАтрибут указывает на элемент <form>
, с которым связано поле ввода. Значением атрибута должен быть id
формы в пределах текущего документа. Если атрибут не задан, то <textarea>
обязательно должен находиться внутри тега form>
. Но если задать атрибут, то нахождение внутри формы не обязательно и <textarea>
может находиться в любом месте страницы.
maxlength
СкопированоМаксимальное число символов в поле (включая пробелы и переводы строк), которое может вводить пользователь. Значением должно быть положительное целое число
minlength
СкопированоМинимальное число символов, которое должен ввести пользователь. Этот атрибут используется при валидации поля перед отправкой формы.
name
СкопированоИмя поля. При отправке формы значение атрибута name
будет ключом в отправляемом объекте
placeholder
СкопированоПодсказка для пользователя, что вводить в этом поле. Если подсказка должна быть многострочной, то можно прямо в HTML-коде переносить строки
Плейсхолдер должен давать только подсказку о том, как надо заполнять поле. Но это не полноценная замена тегу <label>
. Если на макете у полей ввода есть только плейсхолдер, но нет лейблов, то поговорите с дизайнером 😉
readonly
СкопированоАтрибут булевого типа. Если он задан, то пользователь не может редактировать текст в поле, но по-прежнему может с ним взаимодействовать: кликать, копировать текст. При отправке формы значение поля будет отправлено как обычно.
required
СкопированоАтрибут булевого типа. Указывает, должно ли поле обязательно быть заполнено. Атрибут учитывается при валидации формы при отправке. Если поле не заполнить, то при попытке отправки формы браузер покажет ошибку
rows
СкопированоЗадаёт высоту поля ввода в строках. Если атрибут задан, то должен иметь значением целое положительное число. Если не задан, то по умолчанию высота задаётся равной двум строкам.
spellcheck
СкопированоАтрибут указывает, должна ли быть включена проверка правописания в поле. Может принимать следующие значения:
true
— проверка правописания включена
default
— указывает на поведение по умолчанию. При этом значении поле ввода может наследовать значение аналогичного атрибута от родительских элементов.
false
— проверка правописания выключена
wrap
СкопированоАтрибут определяет, будут ли добавлены символы переноса строк текста при отправке формы. Может принимать значения:
hard
— когда форма отправляется, то браузер, основываясь на значении атрибута cols
добавляет в текст служебные символы переноса строки (CR+LF). Таким образом, сохраняется информация о переносах строк, сделанных пользователем в поле ввода.
soft
— значение по умолчанию. При отправке формы символы переноса строк добавлены не будут, и текст будет отправлен одной длинной строкой
Подсказки
Скопировано💡 Поле <textarea>
стилизуется так же, как и поле ввода <input>
. К нему применимы все свойства блочной модели.
💡 По умолчанию поле ввода <textarea>
может изменять свой размер, если потянуть за нижний правый угол. Это поведение можно изменить, управляя CSS-свойством resize
.