Neden textarea bir girdi [type = “textarea”] değil?


153

Neden bir öğe olduğunda <textarea>yerine <input type="textarea">?


1
Bir de bu arada var <select>yerine <input type="select">. <input>Sadece temel bir girdi elemanı temsil eder. typeNitelik sadece tutan değerin türünü temsil eder.
BalusC

Yanıtlar:


176

Belki bu biraz geriye gidiyor ama ...

Ayrıca, çok satırlı metin alanlarının tek satır alanlarından ("metin") farklı türlere (ör. "Textarea") sahip olmasını ve gerçekten farklı türler olduklarını ve istemci tarafında işlem.

- Marc Andreessen, 11 Ekim 1993


18
Evet, "farklı tür", <input type = "textarea"> blah blah \ n \ n blah </input> aracılığıyla aynı şey elde edilemedi mi? Neden farklı bir etiket?
Serhiy

8
w3c oldukça tutarlıdır. w3c'den önceydi
Mark Cidade

10
Bunun bu kadar nasıl oy verdiğini merak ediyorum. Soru 'metin' ve 'textarea' arasındaki farkla ilgili değil, çok satırlı metni <input> etiketinde 'type = textarea' özniteliği olarak değil, <textarea> etiketi olarak eklemenin nedeni ile ilgilidir.
14'te

6
@Daha fazla bu doğrudan bir cevap alır gibi. Bir textareaunsurun nedeni, Marc Andreessen'in yukarıda belirtilen nedenlerle Ekim 1993'te önerdiğidir.
Marcel

5
@Marcel Marc Andreessen farklı türde bir etiket olmamasını önerdi . Farklı etiket typeöznitelik değerleri ile gösterilen farklı girdi türleri vardır inputve hepsi bir ve aynı inputetiketi paylaşır . Yani hayır, bu alıntı bu sorunun cevabı değil.
Piotr Dobrogost

69

Böylece değeri kolayca tırnak işaretleri ve <> karakterleri içerebilir ve boşluk ve satırsonlarına saygı gösterebilir.

Aşağıdaki HTML kodu, w3c doğrulayıcısını başarıyla geçirir ve bunları kodlamaya gerek kalmadan <,> ve & değerlerini görüntüler. Beyaz boşluklara da saygılıdır.

<!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ökenli bir efsaneyi tercih ederim.
k to the z12

9
Metin alanı öğeleri CDATA içeriyor olarak tanımlanmamış, yine için kullanmak kuruluşlara ihtiyaç <, &vb O boşluk işleyebilir sadece böyledir.
Quentin

Sadece test ettim ve evet, kodlanmamış <,> ve & bir textarea içine koyabilirsiniz. Ve w3c doğrulayıcısını başarıyla geçti.
Guillaume Esquevin

@ktothez: Bkz cevabımı .
Marcel

2
Burada uygun bir cevap yok. Genel olarak yaşamda olduğu gibi (yani bir kutunun dışında), bir şeyin olduğu gibi olmasının birçok nedeni vardır.
JohnK

49

A textarea, birden çok metin satırı içerebilir. Bu nedenle, bir metin kullanarak önceden doldurulamaz.value özellik .

Benzer şekilde, selectelemanın optionalt elemanları yerleştirmek için kendi elemanı olması gerekir .


1
Neden onu valueattr ile dolduramıyorsunuz? Taşma textareayine de yeniden boyutlandırıldığında bir sonraki satıra sarılır .
OJFord

3
satır sonlarını özniteliklerde kullanamazsınız
Mark Cidade

23

Bu, yaratıldığı sırada teknolojinin bir sınırlamasıydı. Benim cevabım Programmers.SE arta kopyalanan :

Orijinal HTML taslaklarından birinden :

NOT: Formlar için başlangıç ​​tasarımında, çok satırlı metin alanları TYPE = TEXT olan Giriş öğesi tarafından desteklenmiştir. Ne yazık ki, bu uzun metin değerlerine sahip alanlar için sorunlara neden olur. SGML'nin varsayılan değeri (Referans Miktarı Kümesi), özellik değişmezlerinin uzunluğunu yalnızca 240 karakterle sınırlar. HTML 2.0 SGML bildirimi sınırı 1024 karaktere çıkarır.


6

Bunun eski bir gönderi olduğunu anlıyorum, ancak bunun aynı soruyu merak eden herkes için yararlı olabileceğini düşündüm:

Önceki cevaplar kuşkusuz geçerli olmakla birlikte, metin ve girdi arasındaki ayrımın daha basit bir nedeni vardır.

Daha önce de belirtildiği gibi, HTML, giriş formları da dahil olmak üzere web içeriğini mümkün olduğunca semantik bir yapı tanımlamak ve vermek için kullanılır. Bir metin alanı olabilir ancak salt okunur özelliğiyle okumak girişi için kullanılabilir, ancak bir metin alanı da işaretlenebilir. Böyle bir niteliğin varlığı, bir girdi türü ve dolayısıyla ayrım için bir anlam ifade etmeyecektir .


9
Bu makul input[type="text"]görünebilir , ancak salt okunur özniteliği de alabilir. Hangisi biraz garip, şimdi işaret ediyorsun! w3.org/TR/html-markup/input.text.html#input.text.attrs.readonly
Matt
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.