2011-04-12 89 views

回答

165

也许这是怎么回事有点太靠后,但...

另外,我想表明,多行文本字段比单线场不同类型(例如,“文本区域‘)(’文本“),因为他们真的是不同类型的东西,意味着对客户端处理不同的问题(语义)

- Marc Andreessen, 11 October 1993

+15

是的,“不同类型”,不可能通过来实现,等等等等等等等等等等等等等等等等。为什么使用不同的标签 – Serhiy 2012-04-03 17:42:19

+1

@Serhiy我同意,为它引入一个新元素没有什么意义(就像密码没有自己的元素一样)。不幸的是,W3C并不总是一致的。 – bart 2013-05-13 21:19:13

+8

w3c非常一致。这是之前w3c – 2014-02-13 08:34:29

67

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

下面的HTML代码成功通过w3c validator并显示<,>和&无需编码它们。它也尊重白色空间。使用value属性

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

我更喜欢w3c的起源神话。 – 2011-04-12 15:04:02

+8

Textarea元素没有被定义为包含CDATA,你仍然需要使用'<','&'等实体。它可以处理空白。 – Quentin 2011-04-12 15:04:33

+0

我刚刚测试过,是的,你可以把未编码的<, >和&放在textarea中。它成功通过了w3c验证器。 – 2011-04-12 17:18:04

44

一个textarea可以包含多行文本,所以一个不就能够预先填充它。

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

+2

有洞察力的答案! – JohnK 2013-03-06 15:23:49

+0

为什么不能用'value'属性填充它?总之,无论如何,溢出都会覆盖到'textarea'的大小上的下一行。 – OJFord 2014-08-17 14:29:59

+2

你不能在属性中使用换行符 – 2014-08-18 19:44:20

5

我意识到这是一个较旧的职位,但想这可能对任何人都有帮助响起同样的问题:

虽然以前的答案毫无疑问是有效的,但区分textarea和输入有一个更简单的理由。

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

+7

除了'input [type =“text”]'可以只读* *属性。这有点奇怪,现在你指出了! http://www.w3.org/TR/html-markup/input.text.html#input.text.attrs.readonly – Matt 2014-07-10 21:29:41

16

这是该技术在创建时的局限性。 My answer copied over from Programmers.SE

从原始HTML drafts之一:

注意:在初始设计形式中,多行文本字段是 通过用TYPE = TEXT输入元件支撑。不幸的是,这个 会导致长文本值的字段出现问题。 SGML默认的 (参考数量设置)将属性文字的长度限制为只有240个字符的 。 HTML 2.0 SGML声明将限制 增加到1024个字符。

+0

这实际上应该是被接受的答案。 – zfrisch 2017-09-11 16:55:38