Почему не textarea ввод [type = "textarea" ]?

Почему существует элемент <textarea> вместо <input type="textarea">?

Ответ 1

Возможно, это слишком далеко назад, но...

Кроме того, Id хотел бы предположить, что многострочные текстовые поля имеют другой тип (например, "textarea" ), чем однострочные поля ( "текст" ), поскольку они действительно являются разными типами вещей и подразумевают разные проблемы (семантика) для обработки на стороне клиента.

- Марк Андрессен, 11 октября 1993 года

Ответ 2

Таким образом, его значение может легко содержать кавычки и символы < > и уважать пробелы и символы новой строки.

Следующий HTML-код успешно передает w3c validator и отображает <, > и без необходимости их кодирования. Он также уважает белые пространства.

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8" />
    <title>Yes I can</title>
</head>
<body>
    <textarea name="test">
        I can put < and > and & signs in 
        my textarea without any problems.
    </textarea>
</body>
</html>

Ответ 3

A textarea может содержать несколько строк текста, поэтому его нельзя было бы предварительно заполнить с помощью атрибута value.

Аналогично, элемент select должен быть его собственным элементом для размещения подэлементов option.

Ответ 4

Это было ограничение технологии на момент ее создания. Мой ответ скопирован с Programmers.SE:

Из одного из исходных черновиков HTML:

ПРИМЕЧАНИЕ. В начальном дизайне для форм многострочные текстовые поля были поддерживаемый элементом ввода с TYPE = TEXT. К сожалению, это вызывает проблемы для полей с длинными текстовыми значениями. SGML по умолчанию (Reference Number Set) ограничивает длину литералов атрибутов всего 240 символов. Объявление SGML HTML 2.0 увеличивает лимит до 1024 символов.

Ответ 5

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

В то время как предыдущие ответы, несомненно, верны, существует более простая причина различия между textarea и input.

Как упоминалось ранее, HTML используется для описания и предоставления как можно большей семантической структуры веб-контента, включая входные формы. Текстовое поле может использоваться для ввода, однако текстовое поле также может быть помечено как прочитанное только через атрибут readonly. Существование такого атрибута не имеет никакого смысла для типа ввода и, следовательно, для различия.