为什么不是textarea的input?

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

也许这是有点太遥远了,但…

此外,我想build议多行文本字段有不同的types(如“textarea”)比单行字段(“文本”),因为他们真的是不同types的事情,并暗示不同的问题(语义)为客户端处理。

– 马克·安德烈森,1993年10月11日

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

以下HTML代码成功通过了w3cvalidation程序,并显示<,>和&,而不需要对它们进行编码。 它也尊重白色空间。

 <!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子元素。

这是该技术在创build时的一个限制。 我的答案从程序员复制过来。

从最初的HTML草稿之一 :

注:在窗体的初始devise中,多行文本字段由TYPE = TEXT的Input元素支持。 不幸的是,这导致文本值长的字段出现问题。 SGML的默认值(Reference Quantity Set)将属性文字的长度限制为240个字符。 HTML 2.0 SGML声明将限制增加到1024个字符。

我意识到这是一个较旧的post,但认为这可能有助于任何人想知道同样的问题:

虽然以前的答案无疑是有效的,但是textarea和input的区别还有一个更简单的理由。

如前所述,HTML被用来描述和给出尽可能多的web内容的语义结构,包括input表单。 textarea 可以用于input,但是textarea也可以通过readonly属性标记为只读。 这种属性的存在对于inputtypes是没有意义的,因此也是不同的。