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

时间:2011-04-12 14:59:07

标签: html input types textarea

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

5 个答案:

答案 0 :(得分:174)

也许这有点过头但是......

  

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

- Marc Andreessen, 11 October 1993

答案 1 :(得分:69)

这样它的值很容易包含引号和&lt;&gt;字符和尊重空格和换行符。

以下HTML代码成功传递w3c validator并显示&lt;,&gt;和&amp;无需编码。它也尊重白色空间。

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

答案 2 :(得分:48)

textarea可以包含多行文字,因此无法使用value属性对其进行预填充。

同样,select元素需要是自己的元素来容纳option个子元素。

答案 3 :(得分:21)

这是技术创建时的一个限制。 My answer copied over from Programmers.SE

来自原始HTML drafts之一:

  

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

答案 4 :(得分:5)

我意识到这是一篇较老的帖子,但认为这可能对想知道同样问题的人有所帮助:

虽然之前的答案无疑是有效的,但有一个更简单的原因可以区分textarea和输入。

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