Atribut harus memiliki nilai, bahkan untuk atribut yang kehadirannya hanya menandakan sesuatu harus dilakukan. disabled="false"akan tetap menonaktifkan elemen, karena PRESENCE disabledyang memicu disablement, bukan nilai atribut.
Marc B
Tautan yang saya poskan sebagai komentar untuk jawaban js1568 mengkonfirmasi / mengklarifikasi apa yang dikatakan @Marc
Kehadiran atribut boolean pada elemen mewakili nilai sebenarnya, dan tidak adanya atribut mewakili nilai palsu.
Jika atribut ada, nilainya harus berupa string kosong atau nilai yang merupakan kecocokan tidak peka huruf ASCII untuk nama kanonik atribut, tanpa spasi spasi awal atau jejak.
Tidak adanya atribut adalah satu-satunya sintaks yang valid untuk false :
<inputtype="text"/>
Rekomendasi
Jika Anda peduli untuk menulis XHTML yang valid, gunakan disabled="disabled", karena <input disabled>tidak valid dan alternatif lain kurang dapat dibaca. Selain itu, gunakan saja <input disabled>karena lebih pendek.
Catatan: Jika Anda menggunakan AngularJS, dan harus mengikat status dinonaktifkan ke variabel, Anda dapat menggunakannya ng-disabled. Mirip dengan atribut lain seperti ini, umumnya mereka memiliki ng-*mitra cerdas
jakub.g
5
disabled={true}bekerja dalam kode JSX reactJs tapi saya yakin itu akan dialihkan ke salah satu format HTML5 yang valid / diizinkan saja.
RBT
1
Saya baru saja mencoba semua ini, dan untuk IE11, satu-satunya hal yang tampaknya berfungsi adalah dinonaktifkan = "benar". Nilai yang dinonaktifkan atau tidak ada nilai yang diberikan tidak berfungsi. Sebagai soal fakta, jsp mendapat kesalahan yang sama diperlukan untuk semua bidang, jadi saya harus menentukan disable = "true" agar ini berfungsi.
Pertanyaan OP adalah tentang HTML (yaitu kontrol sisi klien). Anda melihat kontrol sisi server; mereka memiliki konvensi yang berbeda. Anda akan melihat perbedaannya jika Anda memeriksa output HTML oleh JSP Anda. Jika Anda masih ragu, coba biola ini di IE11.
Ruud Helderman
Saya telah melihat hal yang sama di sisi klien pada IE 11. IE 11 memaksa sesuatu untuk ada, jadi hanya mengatur hasil yang dinonaktifkan di dinonaktifkan = ""
Robert Achmann
1
Di HTML5, tidak ada nilai yang benar, semua browser utama tidak terlalu peduli apa atributnya, mereka hanya memeriksa apakah atribut itu ada sehingga elemennya dinonaktifkan.
disabled="false"
akan tetap menonaktifkan elemen, karena PRESENCEdisabled
yang memicu disablement, bukan nilai atribut.Jawaban:
<input type="text" disabled="disabled" />
adalah markup yang valid.<input type="text" disabled />
valid dan digunakan oleh W3C pada sampel mereka.sumber
Spesifikasi HTML5 :
http://www.w3.org/TR/html5/forms.html#enabling-and-disabling-form-controls:-the-disabled-attribute :
http://www.w3.org/TR/html5/infrastructure.html#boolean-attributes :
Kesimpulan :
Berikut ini adalah valid, ekuivalen, dan benar :
Berikut ini tidak valid :
Tidak adanya atribut adalah satu-satunya sintaks yang valid untuk false :
Rekomendasi
Jika Anda peduli untuk menulis XHTML yang valid, gunakan
disabled="disabled"
, karena<input disabled>
tidak valid dan alternatif lain kurang dapat dibaca. Selain itu, gunakan saja<input disabled>
karena lebih pendek.sumber
ng-disabled
. Mirip dengan atribut lain seperti ini, umumnya mereka memiliking-*
mitra cerdasdisabled={true}
bekerja dalam kode JSX reactJs tapi saya yakin itu akan dialihkan ke salah satu format HTML5 yang valid / diizinkan saja.Saya baru saja mencoba semua ini, dan untuk IE11, satu-satunya hal yang tampaknya berfungsi adalah dinonaktifkan = "benar". Nilai yang dinonaktifkan atau tidak ada nilai yang diberikan tidak berfungsi. Sebagai soal fakta, jsp mendapat kesalahan yang sama diperlukan untuk semua bidang, jadi saya harus menentukan disable = "true" agar ini berfungsi.
sumber
Di HTML5, tidak ada nilai yang benar, semua browser utama tidak terlalu peduli apa atributnya, mereka hanya memeriksa apakah atribut itu ada sehingga elemennya dinonaktifkan.
sumber