2011-04-12 107 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