textareaが入力ではないのはなぜですか[type =“ textarea”]?


153

<textarea>代わりに要素があるのはなぜ<input type="textarea">ですか?


1
ちなみにの<select>代わりにもあり<input type="select">ます。<input>ただ、基本的な入力要素を表します。このtype属性は、保持する値のタイプを表すだけです。
BalusC、2011年

回答:


176

たぶんこれは少し前に戻ってしまいますが…

また、複数行のテキストフィールドには単一行フィールド(「テキスト」)とは異なるタイプ(「テキストエリア」)があることをお勧めします。これは、実際にはさまざまなタイプのものであり、クライアント側の処理。

Marc Andreessen、1993年10月11日


18
はい、「異なるタイプ」は、<input type = "textarea">何とか何とか\ n \ n何とか</ input>で同じように達成できませんでしたか?なぜ別個のタグなのですか?
Serhiy

8
w3cはかなり一貫しています。これは、W3Cの前だった
マーク・シダイデ

10
これがどうしてこれほどの賛成票を獲得したのだろう。問題は、 'text'と 'textarea'の違いではなく、複数行のテキストを<input>タグの 'type = textarea'属性としてではなく、<textarea>タグとして含める理由です。
Foreever

6
@Foreeverこれは、ほぼ直接的な答えです。textarea要素があるのは、上記の理由により、1993年10月にマークアンドリーセンが提案したためです。
Marcel、

5
@Marcel Marc Andreessenさんは、タグではなく別のタイプがあるべきだと提案しました。タグの属性の異なる値によって示される異なるタイプの入力があり、それらはすべて1つの同じタグを共有します。したがって、いいえ、この引用はこの質問に対する回答ではありません。typeinputinput
Piotr Dobrogost

69

その値に引用符と<>文字を簡単に含めることができ、空白と改行を尊重できるようにします。

次のHTMLコードは、w3cバリデーターを正常に渡し、エンコードする必要なく<、>、&を表示します。また、空白も尊重します。

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

16
私はw3c起源の神話を好みます。
kからzへ

9
TEXTAREA要素はCDATAを含むものとして定義されていない、あなたはまだのために使用エンティティに必要な<&などそれは空白を扱うことができるだけのようです。
Quentin

私はそれをテストしたばかりで、はい、あなたはエンコードされていない<、>、&をtextarea内に置くことができます。そして、それはw3cバリデーターを正常に渡します。
Guillaume Esquevin

@ktothez:私の答えをください。
マルセル

2
ここで正しい答えは1つではありません。一般的な生活と同様に(つまり、箱の外)、何かがそうであることにいくつかの理由があります。
JohnK 2013年

49

textareaは複数行のテキストを含めることができるため、value属性を使用してテキストを事前に入力することはできません。

同様に、select要素はoptionサブ要素に対応するために独自の要素である必要があります。


1
なぜそれをvalueattrで埋めることができないのですか?textareaとにかく、オーバーフローはサイズ変更時に次の行に折り返されます。
OJFord 2014

3
属性に改行を使用することはできません
Mark Cidade、2014

23

それは、それが作成されたときのテクノロジーの制限でした。 私の答えはProgrammers.SEからコピーされました

元のHTMLドラフトの 1つから:

注:フォームの初期設計では、複数行のテキストフィールドがTYPE = TEXTの入力要素でサポートされていました。残念ながら、これは長いテキスト値を持つフィールドに問題を引き起こします。SGMLのデフォルト(参照数量セット)では、属性リテラルの長さが240文字に制限されています。HTML 2.0のSGML宣言では、制限が1024文字に増えています。


6

私はこれが古い投稿であることを理解していますが、これは同じ質問をしている人に役立つかもしれないと思いました:

以前の回答は間違いなく有効ですが、textareaとinputを区別するのにもっと簡単な理由があります。

前述のように、HTMLは、入力フォームを含め、Webコンテンツに可能な限り多くのセマンティック構造を記述して与えるために使用されます。textarea 入力に使用できますが、readonly属性を使用してtextareaを読み取り専用としてマークすることもできます。このような属性の存在は、入力タイプには意味がなく、したがって区別も意味がありません。


9
これinput[type="text"]は、readonly属性を取ることもできることを除いて、妥当に聞こえます。あなたがそれを指摘した今、これはちょっと変わっています! w3.org/TR/html-markup/input.text.html#input.text.attrs.readonly
Matt
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.