Odpowiedzi:
Może to trochę za daleko, ale…
Chciałbym również zasugerować, że wielowierszowe pola tekstowe mają inny typ (np. „Textarea”) niż pola jednowierszowe („tekst”), ponieważ w rzeczywistości są to różne typy rzeczy i implikują różne kwestie (semantykę) dla obsługa po stronie klienta.
textarea
elementu jest to, że Marc Andreessen zaproponował go w październiku 1993 r. Z powodów wymienionych powyżej.
type
atrybutu input
tagu i wszystkie mają ten sam input
tag. Więc nie, ten cytat nie jest odpowiedzią na to pytanie.
Aby jego wartość mogła z łatwością zawierać cudzysłowy i znaki <> oraz uwzględniać spacje i znaki nowej linii.
Poniższy kod HTML pomyślnie przeszedł walidator w3c i wyświetla <,> oraz & bez potrzeby ich kodowania. Szanuje również białe spacje.
<!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>
<
, &
itp Jest tak może obsłużyć spacje.
A textarea
może zawierać wiele wierszy tekstu, więc nie można byłoby go wstępnie wypełnić za pomocą value
atrybutu.
Podobnie select
element musi być własnym elementem, aby pomieścić option
elementy podrzędne.
value
atr? Przepełnienie zawija do następnej linii przy zmianie rozmiaru textarea
mimo wszystko.
Było to ograniczenie technologii w czasie jej tworzenia. Moja odpowiedź została skopiowana od Programmers.SE :
Z jednej z oryginalnych wersji roboczych HTML :
UWAGA: W początkowym projekcie formularzy wielowierszowe pola tekstowe były obsługiwane przez element wejściowy z TYPE = TEKST. Niestety powoduje to problemy w przypadku pól z długimi wartościami tekstowymi. Wartość domyślna SGML (Reference Quantity Set) ogranicza długość literałów atrybutów do tylko 240 znaków. Deklaracja HTML 2.0 SGML zwiększa limit do 1024 znaków.
Zdaję sobie sprawę, że to starszy post, ale pomyślałem, że może to być pomocne dla każdego, kto zastanawia się nad tym samym pytaniem:
Chociaż poprzednie odpowiedzi są bez wątpienia ważne, istnieje prostszy powód rozróżnienia między obszarem tekstowym a danymi wejściowymi.
Jak wspomniano wcześniej, HTML jest używany do opisywania i nadawania możliwie największej struktury semantycznej zawartości sieci Web, w tym formularzy wejściowych. Pole tekstowe może być używane do wprowadzania danych, jednak obszar tekstowy może być również oznaczony jako tylko do odczytu za pomocą atrybutu tylko do odczytu. Istnienie takiego atrybutu nie miałoby sensu dla typu danych wejściowych , a tym samym dla rozróżnienia.
input[type="text"]
może również przyjąć atrybut readonly . Co jest trochę dziwne, skoro już to wskazałeś! w3.org/TR/html-markup/input.text.html#input.text.attrs.readonly
<select>
zamiast<input type="select">
. Po<input>
prostu reprezentuje podstawowy element wejściowy.type
Atrybut tylko reprezentuje typ wartości w jego posiadaniu.