Inilah yang saya temukan oleh Firebug di Firefox.
Apakah sama di browser lain?
Jika demikian, apa alasannya?
form-submit
disabled-input
forms
http-post
Oh Tuhan
sumber
sumber
Jawaban:
Ya, semua browser tidak boleh mengirimkan input yang dinonaktifkan, karena hanya baca.
Informasi lebih lanjut (bagian 17.12.1)
sumber
<input type="hidden">
elemen dengan nama / nilai yang sama dengan input yang dinonaktifkan.disabled
input tidak akan mengirimkan data.Gunakan
readonly
atribut:Sumber di sini
sumber
readonly
bekerja, pastikan Anda memberikan "nama" attr ke input.Anda dapat menggunakan tiga hal untuk meniru yang dinonaktifkan:
HTML:
readonly
atribut (sehingga nilai yang ada dalam input dapat digunakan pada pengiriman formulir. Juga pengguna tidak dapat mengubah nilai input)CSS:
'pointer-events':'none'
(memblokir pengguna dari mengklik input)HTML:
tabindex="-1"
(memblokir pengguna untuk menavigasi ke input dari keyboard)sumber
Mereka tidak bisa dikirim, karena itu yang dikatakan dalam spesifikasi W3C .
Dengan kata lain, spesifikasi mengatakan bahwa kontrol yang dinonaktifkan dianggap tidak valid dan tidak boleh diserahkan.
sumber
Disabled
kontrol tidak dapat berhasil, dan kontrol yang berhasil adalah "valid" untuk pengiriman. Ini adalah alasan mengapa kontrol yang dinonaktifkan tidak mengirimkan formulir.sumber
Ada dua atribut, yaitu
readonly
dandisabled
, yang dapat membuat input semi-baca-saja. Tetapi ada perbedaan kecil di antara mereka.readonly
Atribut membuat teks masukan Anda dinonaktifkan, dan pengguna tidak dapat mengubahnya lagi.disabled
Atribut tidak hanya akan membuat teks input Anda dinonaktifkan (tidak dapat diubah) tetapi juga tidak dapat dikirimkan .Pendekatan jQuery (1):
Pendekatan jQuery (2):
Pendekatan JavaScript:
PS
disabled
danreadonly
merupakan atribut html standar.prop
diperkenalkan denganjQuery 1.6
.sumber
kontrol pilih masih dapat diklik bahkan pada attrib hanya baca
jika Anda ingin tetap menonaktifkan kontrol tetapi Anda ingin nilainya diposting. Anda mungkin mempertimbangkan untuk membuat bidang tersembunyi. dengan nilai yang sama dengan kendali Anda.
lalu buat jquery, pada perubahan pilih
sumber