为什么 textarea 不是一个输入[ type = “ textarea”] ?

为什么有一个元素 <textarea>而不是 <input type="textarea">

118922 次浏览

因此它的值可以很容易地包含引号和 < > 字符,并且尊重空格和换行符。

下面的 HTML 代码成功地传递了 W3c 验证器并显示 < 、 > 和 & ,而不需要对它们进行编码。它也尊重空白。

<!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>

textarea可以包含多行文本,因此无法使用 value属性预填充它。

类似地,select元素需要是它自己的元素,以容纳 option子元素。

也许这有点太久远了,但是..。

此外,我想建议多行文本字段有一个不同的类型(例如“ textarea”) ,而不是单行字段(“ text”) ,因为它们实际上是不同类型的东西,并意味着客户端处理的不同问题(语义)。

Marc Andreessen,1993年10月11日

我知道这是一篇较早的文章,但是我想这可能对任何想知道同样问题的人有所帮助:

虽然前面的答案无疑是有效的,有一个更简单的原因之间的文本区和输入的区别。

如前所述,HTML 用于描述和给出尽可能多的 Web 内容语义结构,包括输入表单。一个 textarea 用于输入,但是一个 textarea 也可以通过 readonly 属性标记为只读。这种属性的存在对于 输入类型没有任何意义,因此也没有区别。

这是当时技术的一个局限性。 我的答案是从程序员那里抄来的:

来自原版 HTML 草稿的一段:

注意: 在表单的初始设计中,多行文本字段是 TYPE = TEXT 的 Input 元素支持 导致文本值较长的字段出现问题 (参考数量集)将属性文字的长度限制为 HTML 2.0 SGML 声明增加了这个限制 到1024个字符。