【问题标题】:Why isn't textarea an input[type="textarea"]?为什么 textarea 不是 input[type="textarea"]?
【发布时间】:2011-08-03 23:39:30
【问题描述】:

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

【问题讨论】:

  • 还有一个<select> 而不是<input type="select"><input> 只代表一个基本的输入元素。 type 属性只代表它所持有的值的类型。

标签: html input types textarea


【解决方案1】:

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

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

——Marc Andreessen, 11 October 1993

【讨论】:

  • 是的,“不同的类型”,难道不能通过 blah blah \n \n blah 来实现吗?为什么要使用不同的标签?
  • w3c 非常一致。这是在 w3c 之前
  • 我想知道这是怎么得到这么多赞的。问题不在于 'text' 和 'textarea' 之间的区别,而在于将多行文本包含为
  • @Foreever 这是最直接的答案。之所以有 textarea 元素,是因为 Marc Andreessen 早在 1993 年 10 月就出于上述原因提出了它。
  • @Marcel Marc Andreessen 建议应该有一个不同的 type 而不是 taginput 标签的type 属性的不同值表示不同类型的输入,它们都共享一个相同的input 标签。所以不,这句话不是这个问题的答案。
【解决方案2】:

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

以下 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>

【讨论】:

  • 我更喜欢 w3c 起源神话。
  • Textarea 元素未定义为包含 CDATA,您仍然需要使用 &lt;&amp; 等实体。它只是为了它可以处理空白。
  • 我刚刚测试过,是的,您可以将未编码的 和 & 放在文本区域中。它成功通过了 w3c 验证器。
  • @ktothez:见my answer
  • 这里没有一个正确的答案。与一般的生活(即,在盒子外)一样,有多种原因会导致事物成为现实。
【解决方案3】:

textarea 可以包含多行文本,因此无法使用 value 属性预先填充它。

同样,select 元素必须是它自己的元素才能容纳 option 子元素。

【讨论】:

  • 为什么不能用value attr 填充它?无论如何,在调整 textarea 的大小时,溢出会换行到下一行。
  • 你不能在属性中使用换行符
【解决方案4】:

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

来自原HTML drafts之一:

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

【讨论】:

    【解决方案5】:

    我知道这是一篇较旧的帖子,但认为这可能对任何想知道相同问题的人有所帮助:

    虽然前面的答案无疑是有效的,但区分 textarea 和 input 有一个更简单的原因。

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

    【讨论】:

    猜你喜欢
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 2011-11-21
    • 2015-04-06
    • 2015-01-18
    相关资源
    最近更新 更多