【发布时间】:2011-08-03 23:39:30
【问题描述】:
为什么有一个元素<textarea> 而不是<input type="textarea">?
【问题讨论】:
-
还有一个
<select>而不是<input type="select">。<input>只代表一个基本的输入元素。type属性只代表它所持有的值的类型。
为什么有一个元素<textarea> 而不是<input type="textarea">?
【问题讨论】:
<select> 而不是<input type="select">。 <input> 只代表一个基本的输入元素。 type 属性只代表它所持有的值的类型。
也许这有点太远了,但是……
另外,我想建议多行文本字段具有与单行字段(“文本”)不同的类型(例如“textarea”),因为它们确实是不同类型的事物,并暗示不同的问题(语义)用于客户端处理。
【讨论】:
textarea 元素,是因为 Marc Andreessen 早在 1993 年 10 月就出于上述原因提出了它。
input 标签的type 属性的不同值表示不同类型的输入,它们都共享一个相同的input 标签。所以不,这句话不是这个问题的答案。
这样它的值可以很容易地包含引号和 字符并尊重空格和换行符。
以下 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>
【讨论】:
<、& 等实体。它只是为了它可以处理空白。
textarea 可以包含多行文本,因此无法使用 value 属性预先填充它。
同样,select 元素必须是它自己的元素才能容纳 option 子元素。
【讨论】:
value attr 填充它?无论如何,在调整 textarea 的大小时,溢出会换行到下一行。
这是技术在创建时的限制。 My answer copied over from Programmers.SE:
来自原HTML drafts之一:
注意:在表单的初始设计中,多行文本字段是 由 TYPE=TEXT 的 Input 元素支持。不幸的是,这 导致具有长文本值的字段出现问题。 SGML 的默认值 (参考数量集)将属性文字的长度限制为 只有 240 个字符。 HTML 2.0 SGML 声明增加了限制 最多 1024 个字符。
【讨论】:
我知道这是一篇较旧的帖子,但认为这可能对任何想知道相同问题的人有所帮助:
虽然前面的答案无疑是有效的,但区分 textarea 和 input 有一个更简单的原因。
如前所述,HTML 用于描述和尽可能多地为 Web 内容(包括输入表单)提供语义结构。 textarea 可以用于输入,但是 textarea 也可以通过 readonly 属性标记为只读。这样一个属性的存在对于 input 类型没有任何意义,因此区分。
【讨论】:
input[type="text"] 也可以采用 readonly 属性。这有点奇怪,现在你指出来了! w3.org/TR/html-markup/input.text.html#input.text.attrs.readonly