为什么有一个元素<textarea>
而不是<input type="textarea">
?
答案 0 :(得分:174)
也许这有点过头但是......
另外,我想建议多行文本字段与单行字段(“text”)具有不同的类型(例如“textarea”),因为它们实际上是不同类型的事物,并且意味着不同的问题(客户端处理的语义。
答案 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属性标记为只读。这种属性的存在对于输入类型没有任何意义,因而也就是区别。