<textarea>

Поле многострочного ввода в формах.

Время чтения: 5 мин

Кратко

Секция статьи "Кратко"

Тег <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

Секция статьи "autocomplete"

Атрибут, указывающий, нужно ли поле заполнять автоматически сохранёнными в браузере значениями. Полезно использовать, если одна и та же форма потенциально будет часто отправляться с одинаковыми значениями.

Значения атрибута:

on — поле будет автоматически заполняться значением, сохранённым в браузере во время предыдущей отправки формы

off — поле не будет заполняться браузером автоматически. Также, это значение нужно использовать, если документ предоставляет собственный метод автозаполнения полей.

Если атрибут не указать совсем, то браузер будет брать значение из атрибута autocomplete родительского элемента <form>, либо — если родительской формы нет — из той формы, на id которой ссылается атрибуте form.

        
          
          <textarea autocomplete="off"></textarea>
          <textarea autocomplete="off"></textarea>

        
        
          
        
      

autofocus

Секция статьи "autofocus"

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

        
          
          <textarea autofocus></textarea>
          <textarea autofocus></textarea>

        
        
          
        
      

cols

Секция статьи "cols"

Задаёт ширину поля ввода в символах. Если атрибут задан, то должен иметь значением целое положительное число. Если не задан, то по умолчанию берётся как 20

Открыть демо в новой вкладке

disabled

Секция статьи "disabled"

Атрибут булевого типа. Если задан, то поле отключается для взаимодействия с пользователем. Если атрибут не задан, то он может быть унаследован у одного из предков (например у контейнера <fieldset> или <form>). Если ни у одного предка вверх по дереву этот атрибут не задан, то поле доступно для редактирования.

Открыть демо в новой вкладке

При отправке формы значения из disabled-полей не будут отправлены.

form

Секция статьи "form"

Атрибут указывает на элемент <form>, с которым связано поле ввода. Значением атрибута должен быть id формы в пределах текущего документа. Если атрибут не задан, то <textarea> обязательно должен находиться внутри тега form>. Но если задать атрибут, то нахождение внутри формы не обязательно и <textarea> может находиться в любом месте страницы.

maxlength

Секция статьи "maxlength"

Максимальное число символов в поле (включая пробелы и переводы строк), которое может вводить пользователь. Значением должно быть положительное целое число

Открыть демо в новой вкладке

minlength

Секция статьи "minlength"

Минимальное число символов, которое должен ввести пользователь. Этот атрибут используется при валидации поля перед отправкой формы.

name

Секция статьи "name"

Имя поля. При отправке формы значение атрибута name будет ключом в отправляемом объекте

placeholder

Секция статьи "placeholder"

Подсказка для пользователя, что вводить в этом поле. Если подсказка должна быть многострочной, то можно прямо в HTML-коде переносить строки

Открыть демо в новой вкладке

Плейсхолдер должен давать только подсказку о том, как надо заполнять поле. Но это не полноценная замена тегу <label>. Если на макете у полей ввода есть только плейсхолдер, но нет лейблов, то поговорите с дизайнером 😉

readonly

Секция статьи "readonly"

Атрибут булевого типа. Если он задан, то пользователь не может редактировать текст в поле, но по-прежнему может с ним взаимодействовать: кликать, копировать текст. При отправке формы значение поля будет отправлено как обычно.

required

Секция статьи "required"

Атрибут булевого типа. Указывает, должно ли поле обязательно быть заполнено. Атрибут учитывается при валидации формы при отправке. Если поле не заполнить, то при попытке отправки формы браузер покажет ошибку

rows

Секция статьи "rows"

Задаёт высоту поля ввода в строках. Если атрибут задан, то должен иметь значением целое положительное число. Если не задан, то по умолчанию высота задаётся равной двум строкам.

Открыть демо в новой вкладке

spellcheck

Секция статьи "spellcheck"

Атрибут указывает, должна ли быть включена проверка правописания в поле. Может принимать следующие значения:

true — проверка правописания включена

default — указывает на поведение по умолчанию. При этом значении поле ввода может наследовать значение аналогичного атрибута от родительских элементов.

false — проверка правописания выключена

wrap

Секция статьи "wrap"

Атрибут определяет, будут ли добавлены символы переноса строк текста при отправке формы. Может принимать значения:

hard — когда форма отправляется, то браузер, основываясь на значении атрибута cols добавляет в текст служебные символы переноса строки (CR+LF). Таким образом, сохраняется информация о переносах строк, сделанных пользователем в поле ввода.

soft — значение по умолчанию. При отправке формы символы переноса строк добавлены не будут, и текст будет отправлен одной длинной строкой

Подсказки

Секция статьи "Подсказки"

💡 Поле <textarea> стилизуется так же, как и поле ввода <input>. К нему применимы все свойства блочной модели.

💡 По умолчанию поле ввода <textarea> может изменять свой размер, если потянуть за нижний правый угол. Это поведение можно изменить, управляя CSS-свойством resize.