A propósito, também há um em <select>vez de <input type="select">. O <input>just representa um elemento de entrada básico. O typeatributo apenas representa o tipo do valor que possui.
BalusC
Respostas:
176
Talvez isso esteja indo muito longe, mas…
Além disso, eu gostaria de sugerir que os campos de texto com várias linhas tenham um tipo diferente (por exemplo, “área de texto”) que os campos de linha única (“texto”), pois eles realmente são tipos diferentes de coisas e implicam problemas diferentes (semântica) para manipulação do lado do cliente.
Sim, "tipo diferente", o mesmo não poderia ter sido alcançado através de <input type = "textarea"> blá blá \ n \ n blá </input>? Por que uma marca distinta?
Serhiy
8
O w3c é bastante consistente. isso foi antes do w3c
Mark Cidade
10
Eu me pergunto como isso ficou tão votado. A questão não é sobre a diferença entre 'text' e 'textarea', mas o motivo da inclusão do texto de várias linhas como tag <textarea>, em vez de como um atributo 'type = textarea' na tag <input>.
Foreever 12/03
6
@ Antes disso, essa é a resposta mais direta possível. A razão pela qual existe um textareaelemento é que Marc Andreessen o propôs em outubro de 1993 pelos motivos citados acima.
Marcel
5
@Marcel Marc Andreessen sugeriu que deveria haver um diferente tipo não tag . Existem diferentes tipos de entrada denotados por diferentes valores do typeatributo da inputtag e todos compartilham uma e a mesma inputtag. Portanto, não, esta citação não é uma resposta para esta pergunta.
Piotr Dobrogost
69
Para que seu valor possa facilmente conter aspas e <> caracteres e respeitar espaços em branco e novas linhas.
O código HTML a seguir passa com êxito o validador w3c e exibe <,> e & sem a necessidade de codificá-los. Também respeita os espaços em branco.
<!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 elementos não são definidos como contendo CDATA, você ainda precisa de entidades de uso para <, &, etc. É apenas para que ele possa lidar com espaços em branco.
Quentin
Acabei de testar e, sim, você pode colocar <,> e & não codificados em uma área de texto. E passou com sucesso o validador w3c.
NOTA: No design inicial para formulários, os campos de texto com várias linhas eram suportados pelo elemento Input com TYPE = TEXT. Infelizmente, isso causa problemas para campos com valores longos de texto. O padrão do SGML (conjunto de quantidade de referência) limita o comprimento dos literais de atributo a apenas 240 caracteres. A declaração SGML HTML 2.0 aumenta o limite para 1024 caracteres.
Sei que este é um post antigo, mas achei que isso poderia ser útil para qualquer pessoa que se perguntasse a mesma pergunta:
Embora as respostas anteriores sejam sem dúvida válidas, há uma razão mais simples para a distinção entre área de texto e entrada.
Como mencionado anteriormente, o HTML é usado para descrever e fornecer o máximo possível de estrutura semântica para o conteúdo da Web, incluindo formulários de entrada. Uma área de texto pode ser usada para entrada, no entanto, uma área de texto também pode ser marcada como somente leitura através do atributo readonly. A existência desse atributo não faria sentido para um tipo de entrada e, portanto, a distinção.
<select>
vez de<input type="select">
. O<input>
just representa um elemento de entrada básico. Otype
atributo apenas representa o tipo do valor que possui.Respostas:
Talvez isso esteja indo muito longe, mas…
- Marc Andreessen, 11 de outubro de 1993
fonte
textarea
elemento é que Marc Andreessen o propôs em outubro de 1993 pelos motivos citados acima.type
atributo dainput
tag e todos compartilham uma e a mesmainput
tag. Portanto, não, esta citação não é uma resposta para esta pergunta.Para que seu valor possa facilmente conter aspas e <> caracteres e respeitar espaços em branco e novas linhas.
O código HTML a seguir passa com êxito o validador w3c e exibe <,> e & sem a necessidade de codificá-los. Também respeita os espaços em branco.
fonte
<
,&
, etc. É apenas para que ele possa lidar com espaços em branco.A
textarea
pode conter várias linhas de texto, portanto, não seria possível preenchê-lo previamente usando umvalue
atributo.Da mesma forma, o
select
elemento precisa ser seu próprio elemento para acomodaroption
subelementos.fonte
value
attr? O estouro passa para a próxima linha no redimensionamento detextarea
qualquer maneira.Era uma limitação da tecnologia no momento em que foi criada. Minha resposta foi copiada do Programmers.SE :
De um dos rascunhos HTML originais :
fonte
Sei que este é um post antigo, mas achei que isso poderia ser útil para qualquer pessoa que se perguntasse a mesma pergunta:
Embora as respostas anteriores sejam sem dúvida válidas, há uma razão mais simples para a distinção entre área de texto e entrada.
Como mencionado anteriormente, o HTML é usado para descrever e fornecer o máximo possível de estrutura semântica para o conteúdo da Web, incluindo formulários de entrada. Uma área de texto pode ser usada para entrada, no entanto, uma área de texto também pode ser marcada como somente leitura através do atributo readonly. A existência desse atributo não faria sentido para um tipo de entrada e, portanto, a distinção.
fonte
input[type="text"]
pode levar o atributo readonly . O que é meio estranho, agora que você aponta! w3.org/TR/html-markup/input.text.html#input.text.attrs.readonly