Ada omong-omong juga <select>bukan <input type="select">. The <input>hanya merupakan elemen input dasar. The typeatribut hanya mewakili jenis nilai yang dimilikinya.
BalusC
Jawaban:
176
Mungkin ini agak terlalu jauh ke belakang tapi ...
Juga, saya ingin menyarankan bahwa bidang teks multiline memiliki tipe yang berbeda (misalnya "textarea") daripada bidang baris tunggal ("teks"), karena mereka benar-benar jenis yang berbeda, dan menyiratkan masalah yang berbeda (semantik) untuk penanganan sisi klien.
Ya, "tipe berbeda", tidak bisakah hal yang sama dicapai melalui <input type = "textarea"> bla bla \ n \ n bla </input>? Mengapa ada tag yang berbeda?
Serhiy
8
w3c cukup konsisten. ini sebelum w3c
Mark Cidade
10
Saya bertanya-tanya bagaimana ini bisa mendapatkan banyak suara. Pertanyaannya bukan tentang perbedaan antara 'teks' dan 'textarea', tetapi alasan untuk memasukkan teks multi-baris sebagai tag <textarea> bukan sebagai atribut 'type = textarea' dalam tag <input>.
Foreever
6
@Foreever ini tentang jawaban langsung karena mendapat. Alasan ada textareaelemen adalah karena Marc Andreessen mengusulkannya kembali pada Oktober 1993 dengan alasan seperti dikutip di atas.
Marcel
5
@ Marc Marc Andreessen menyarankan bahwa harus ada jenis yang berbeda bukan tag . Ada berbagai jenis input yang ditandai oleh nilai typeatribut inputtag yang berbeda dan semuanya memiliki satu dan inputtag yang sama . Jadi tidak, kutipan ini bukan jawaban untuk pertanyaan ini.
Piotr Dobrogost
69
Sehingga nilainya dapat dengan mudah memuat tanda kutip dan <> karakter dan menghormati spasi putih dan baris baru.
Kode HTML berikut berhasil melewati validator w3c dan menampilkan <,> dan & tanpa perlu menyandikannya. Ini juga menghormati ruang putih.
<!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>
Tidak ada satu jawaban yang tepat di sini. Seperti halnya kehidupan pada umumnya (yaitu, di luar kotak) ada beberapa alasan untuk sesuatu menjadi apa adanya.
JohnK
49
A textareadapat berisi beberapa baris teks, jadi seseorang tidak akan dapat mengisinya terlebih dahulu menggunakan valueatribut.
Demikian pula, selectelemen perlu elemen sendiri untuk mengakomodasi optionsub-elemen.
CATATAN: Dalam desain awal untuk formulir, bidang teks multi-baris didukung oleh elemen Input dengan TYPE = TEXT. Sayangnya, ini menyebabkan masalah untuk bidang dengan nilai teks yang panjang. Default SGML (Reference Quantity Set) membatasi panjang literal atribut menjadi hanya 240 karakter. Deklarasi HTML 2.0 SGML meningkatkan batas hingga 1024 karakter.
Saya menyadari ini adalah posting yang lebih lama, tetapi berpikir ini mungkin bermanfaat bagi siapa saja yang bertanya pertanyaan yang sama:
Sementara jawaban sebelumnya tidak diragukan lagi valid, ada alasan yang lebih sederhana untuk perbedaan antara textarea dan input.
Seperti yang disebutkan sebelumnya, HTML digunakan untuk menggambarkan dan memberikan sebanyak mungkin struktur semantik untuk konten web, termasuk formulir input. Textarea dapat digunakan untuk input, namun textarea juga dapat ditandai sebagai read only melalui atribut readonly. Keberadaan atribut seperti itu tidak masuk akal untuk tipe input , dan dengan demikian perbedaan.
<select>
bukan<input type="select">
. The<input>
hanya merupakan elemen input dasar. Thetype
atribut hanya mewakili jenis nilai yang dimilikinya.Jawaban:
Mungkin ini agak terlalu jauh ke belakang tapi ...
- Marc Andreessen, 11 Oktober 1993
sumber
textarea
elemen adalah karena Marc Andreessen mengusulkannya kembali pada Oktober 1993 dengan alasan seperti dikutip di atas.type
atributinput
tag yang berbeda dan semuanya memiliki satu daninput
tag yang sama . Jadi tidak, kutipan ini bukan jawaban untuk pertanyaan ini.Sehingga nilainya dapat dengan mudah memuat tanda kutip dan <> karakter dan menghormati spasi putih dan baris baru.
Kode HTML berikut berhasil melewati validator w3c dan menampilkan <,> dan & tanpa perlu menyandikannya. Ini juga menghormati ruang putih.
sumber
<
,&
, dll hanya sehingga dapat menangani spasi.A
textarea
dapat berisi beberapa baris teks, jadi seseorang tidak akan dapat mengisinya terlebih dahulu menggunakanvalue
atribut.Demikian pula,
select
elemen perlu elemen sendiri untuk mengakomodasioption
sub-elemen.sumber
value
attr? Overflow membungkus ke baris berikutnya pada mengubah ukurantextarea
pula.Itu adalah keterbatasan teknologi pada saat itu diciptakan. Jawaban saya disalin dari Programmers.SE :
Dari salah satu konsep HTML asli :
sumber
Saya menyadari ini adalah posting yang lebih lama, tetapi berpikir ini mungkin bermanfaat bagi siapa saja yang bertanya pertanyaan yang sama:
Sementara jawaban sebelumnya tidak diragukan lagi valid, ada alasan yang lebih sederhana untuk perbedaan antara textarea dan input.
Seperti yang disebutkan sebelumnya, HTML digunakan untuk menggambarkan dan memberikan sebanyak mungkin struktur semantik untuk konten web, termasuk formulir input. Textarea dapat digunakan untuk input, namun textarea juga dapat ditandai sebagai read only melalui atribut readonly. Keberadaan atribut seperti itu tidak masuk akal untuk tipe input , dan dengan demikian perbedaan.
sumber
input[type="text"]
dapat mengambil atribut readonly juga. Yang agak aneh, sekarang Anda tunjukkan! w3.org/TR/html-markup/input.text.html#input.text.attrs.readonly