HTML / 9. Формы

Многострочные области ввода текста

Традиционные и скрытые поля ввода текста в формах ограничивают пользовательский ввод одной строкой символов. Тег формы <textarea> снимает это ограничение.

Тег <textarea>
Как часть формы тег <textarea> создает многострочную область ввода текста в окне пользовательского броузера. В ней можно набрать практически неограниченное число строк текста. При отправке формы броузер собирает все строки текста, отделяя их друг от друга последовательностью символов «%0D%0A» (возврат каретки/перевод строки), и посылает их серверу в качестве значения элемента формы, используя имя, указанное в обязательном для этого тега атрибуте name.

Вы можете поместить между тегом <textarea> и его закрывающим тегом гладкий текст. Вставляемый по умолчанию, он должен быть собственно текстом – не содержать тегов и каких-либо еще специальных элементов. Пользователь может модифицировать этот текст, а броузер использует его в качестве значения, принимаемого по умолчанию, когдатот нажимает кнопку обновления формы. Следовательно, текстовое содержимое тега употребляется чаще всего для инструкций и примеров:

Расскажите немного о себе:

<textarea name=address cols=40 rows=4>
Укажите здесь ваше имя
1234 Улица такая-то
Такой-то город, страна, почтовый индекс </textarea>

Атрибуты rows и cols
Область ввода многострочного текста расположена на экране отдельно – содержимое тела выводится выше и ниже нее, но не обтекает. Тем не менее вы можете управлять ее размерами, присваивая значения атрибутам cols и rows (столбцы и строки), определяющим прямоугольную область, выделяемую броузером для многострочного ввода. Мы советуем устанавливать эти атрибуты. Обычные броузеры имеют привычку оставлять самый маленький, едва пригодный для чтения прямоугольник, и пользователи не могут изменить область, отведенную под ввод тегом <textarea>. Оба атрибута требуют целых значений, выражающих соответствующий размер в символах. Броузер автоматически прокручивает текст, выходящий за эти пределы.

Атрибут wrap
Обычно набранный пользователем текст передается серверу точно так, как он набран, с разрывами строк только в местах, где пользователь нажимал клавишу <Enter>. Поскольку часто это не то, чего хочет посетитель, можно включить в области ввода автоматический перевод строк текста. Когда пользователь набирает строку, которая превышает ширину области ввода, броузер автоматически перемещает лишний текст на следующую строку, разрывая ее в ближайшей точке между словами.

Если атрибуту wrap присвоено значение virtual, текст переносится в области ввода только для представления пользователю, но передаетсясерверу, как если бы никаких автопереносов строки не было, за исключением тех случаев, когда нажималась клавиша <Enter>.

Если атрибуту wrap присвоено значение physical, текст переносится в окне и отправляется серверу, как если бы пользователь его именно так и набрал. Это самый полезный способ употребления атрибута wrap, поскольку текст отправляется именно в том виде, в каком пользователь видит его в области ввода. Действию по умолчанию соответствует установка wrap=off.

В качестве примера рассмотрим следующие 69 символов текста, набираемые в области ввода в 40 символов шириной:

Автоматические переносы – это средство облегчить жизнь пользователям. При установке wrap=off область ввода будет содержать одну строку и пользователю придется прокручивать ее вправо, чтобы увидеть весь текст. Серверу будет отправлена одна строка текста.

При установке wrap=virtual область ввода будет содержать две строки текста с разрывом после слова «средство». Серверу будет передана только одна строка – целиком, без вставленных в нее символов новой строки.

При установке wrap=physical область ввода будет содержать две строки с разрывом после слова «средство». Серверу будут переданы две строки, разделенные символом новой строки после слова «средство».

Статьи по HTML на эту тему:

Атрибуты формы общего назначения
Группировка элементов формы и обеспечение их надписями
Программирование форм
Элементы множественного выбора
Эффективные формы

Вернуться в раздел: HTML / 9. Формы