Es gibt übrigens auch ein <select>statt <input type="select">. Das <input>just stellt ein grundlegendes Eingabeelement dar. Das typeAttribut repräsentiert nur den Typ des Wertes, den es enthält.
BalusC
Antworten:
176
Vielleicht geht das etwas zu weit zurück, aber ...
Außerdem möchte ich vorschlagen, dass mehrzeilige Textfelder einen anderen Typ (z. B. "Textbereich") haben als einzeilige Felder ("Text"), da es sich tatsächlich um unterschiedliche Arten von Dingen handelt und unterschiedliche Probleme (Semantik) für clientseitiges Handling.
Ja, "anderer Typ", konnte nicht dasselbe über <input type = "textarea"> bla bla \ n \ n bla </ input> erreicht werden? Warum ein eindeutiges Tag?
Serhiy
8
w3c ist ziemlich konsistent. Dies war vor w3c
Mark Cidade
10
Ich frage mich, wie das so viel Aufsehen erregt hat. Bei der Frage geht es nicht um den Unterschied zwischen "Text" und "Textbereich", sondern um den Grund, warum der mehrzeilige Text als <textarea> -Tag und nicht als "type = textarea" -Attribut in das <input> -Tag aufgenommen wird.
foreever
6
@ Für immer ist dies eine so direkte Antwort wie es nur geht. Der Grund dafür textareaist, dass Marc Andreessen es bereits im Oktober 1993 aus den oben genannten Gründen vorgeschlagen hat.
Marcel
5
@Marcel Marc Andreessen schlug vor, dass es einen anderen Typ ohne Tag geben sollte . Es gibt verschiedene Arten von Eingaben, die durch unterschiedliche Werte des typeAttributs des inputTags gekennzeichnet sind, und alle teilen sich ein und dasselbe inputTag. Also nein, dieses Zitat ist keine Antwort auf diese Frage.
Piotr Dobrogost
69
Damit sein Wert leicht Anführungszeichen und <> Zeichen enthalten und Leerzeichen und Zeilenumbrüche berücksichtigen kann.
Der folgende HTML-Code besteht erfolgreich den w3c-Validator und zeigt <,> und & an, ohne dass diese codiert werden müssen. Es respektiert auch die Leerzeichen.
<!doctype html><htmllang="en"><head><metacharset="UTF-8"/><title>Yes I can</title></head><body><textareaname="test">
I can put < and > and & signs in
my textarea without any problems.
</textarea></body></html>
TextArea- Elemente sind nicht als enthält CDATA definiert sind , müssen Sie noch zu verwenden Entitäten für <, &usw. Es ist nur so ist es Leerzeichen umgehen kann.
Quentin
Ich habe es gerade getestet und ja, Sie können nicht codierte <,> und & in einen Textbereich einfügen. Und es hat den w3c-Validator erfolgreich bestanden.
HINWEIS: Beim ursprünglichen Entwurf für Formulare wurden mehrzeilige Textfelder vom Eingabeelement mit TYPE = TEXT unterstützt. Dies führt leider zu Problemen bei Feldern mit langen Textwerten. Die Standardeinstellung von SGML (Reference Quantity Set) begrenzt die Länge von Attributliteralen auf nur 240 Zeichen. Die HTML 2.0 SGML-Deklaration erhöht das Limit auf 1024 Zeichen.
Mir ist klar, dass dies ein älterer Beitrag ist, aber ich dachte, dies könnte für jeden hilfreich sein, der sich die gleiche Frage stellt:
Während die vorherigen Antworten zweifellos gültig sind, gibt es einen einfacheren Grund für die Unterscheidung zwischen Textbereich und Eingabe.
Wie bereits erwähnt, wird HTML verwendet, um Webinhalte, einschließlich Eingabeformulare, so semantisch wie möglich zu beschreiben und zu strukturieren. Ein Textbereich kann zur Eingabe verwendet werden, ein Textbereich kann jedoch auch über das Attribut readonly als schreibgeschützt markiert werden. Das Vorhandensein eines solchen Attributs würde für einen Eingabetyp und damit für die Unterscheidung keinen Sinn ergeben .
<select>
statt<input type="select">
. Das<input>
just stellt ein grundlegendes Eingabeelement dar. Dastype
Attribut repräsentiert nur den Typ des Wertes, den es enthält.Antworten:
Vielleicht geht das etwas zu weit zurück, aber ...
- Marc Andreessen, 11. Oktober 1993
quelle
textarea
ist, dass Marc Andreessen es bereits im Oktober 1993 aus den oben genannten Gründen vorgeschlagen hat.type
Attributs desinput
Tags gekennzeichnet sind, und alle teilen sich ein und dasselbeinput
Tag. Also nein, dieses Zitat ist keine Antwort auf diese Frage.Damit sein Wert leicht Anführungszeichen und <> Zeichen enthalten und Leerzeichen und Zeilenumbrüche berücksichtigen kann.
Der folgende HTML-Code besteht erfolgreich den w3c-Validator und zeigt <,> und & an, ohne dass diese codiert werden müssen. Es respektiert auch die Leerzeichen.
quelle
<
,&
usw. Es ist nur so ist es Leerzeichen umgehen kann.A
textarea
kann mehrere Textzeilen enthalten, sodass man es nicht mit einemvalue
Attribut vorab ausfüllen kann .Ebenso muss das
select
Element ein eigenes Element sein, umoption
Unterelemente aufzunehmen.quelle
value
attr füllen? Der Überlauf wird bei der Größenänderung destextarea
ohnehin in die nächste Zeile umgebrochen .Dies war eine Einschränkung der Technologie zum Zeitpunkt ihrer Erstellung. Meine Antwort wurde von Programmers.SE kopiert :
Aus einem der ursprünglichen HTML-Entwürfe :
quelle
Mir ist klar, dass dies ein älterer Beitrag ist, aber ich dachte, dies könnte für jeden hilfreich sein, der sich die gleiche Frage stellt:
Während die vorherigen Antworten zweifellos gültig sind, gibt es einen einfacheren Grund für die Unterscheidung zwischen Textbereich und Eingabe.
Wie bereits erwähnt, wird HTML verwendet, um Webinhalte, einschließlich Eingabeformulare, so semantisch wie möglich zu beschreiben und zu strukturieren. Ein Textbereich kann zur Eingabe verwendet werden, ein Textbereich kann jedoch auch über das Attribut readonly als schreibgeschützt markiert werden. Das Vorhandensein eines solchen Attributs würde für einen Eingabetyp und damit für die Unterscheidung keinen Sinn ergeben .
quelle
input[type="text"]
auch das Attribut readonly verwendet werden kann. Was irgendwie seltsam ist, jetzt wo Sie darauf hinweisen! w3.org/TR/html-markup/input.text.html#input.text.attrs.readonly