Inilah yang saya temukan oleh Firebug di Firefox.
Apakah sama di browser lain?
Jika demikian, apa alasannya?
Inilah yang saya temukan oleh Firebug di Firefox.
Apakah sama di browser lain?
Jika demikian, apa alasannya?
Jawaban:
Ya, semua browser tidak boleh mengirimkan input yang dinonaktifkan, karena hanya baca.
Informasi lebih lanjut (bagian 17.12.1)
Definisi atribut
dinonaktifkan [CI] Ketika diatur untuk kontrol formulir, atribut Boolean ini menonaktifkan kontrol untuk input pengguna. Saat disetel, atribut yang dinonaktifkan memiliki efek berikut pada suatu elemen:
- Kontrol yang dinonaktifkan tidak menerima fokus.
- Kontrol yang dinonaktifkan dilewati dalam navigasi tab.
- Kontrol yang dinonaktifkan tidak dapat berhasil.
Elemen-elemen berikut mendukung atribut yang dinonaktifkan: BUTTON, INPUT, OPTGROUP, OPTION, SELECT, dan TEXTAREA.
Atribut ini diwarisi tetapi deklarasi lokal mengesampingkan nilai yang diwarisi.
Bagaimana elemen yang dinonaktifkan diberikan tergantung pada agen pengguna. Misalnya, beberapa agen pengguna "tidak berwarna" item menu yang dinonaktifkan, label tombol, dll.
Dalam contoh ini, elemen INPUT dinonaktifkan. Oleh karena itu, ia tidak dapat menerima input pengguna atau nilainya tidak akan disampaikan dengan formulir.
<INPUT disabled name="fred" value="stone">
Catatan. Satu-satunya cara untuk mengubah nilai atribut yang dinonaktifkan secara dinamis adalah melalui skrip.
<input type="hidden">
elemen dengan nama / nilai yang sama dengan input yang dinonaktifkan.
disabled
input tidak akan mengirimkan data.
Gunakan readonly
atribut:
<input type="text" readonly />
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)
Mereka tidak bisa dikirim, karena itu yang dikatakan dalam spesifikasi W3C .
17.13.2 Kontrol yang berhasil
Kontrol yang berhasil adalah "valid" untuk pengiriman. [menggunting]
- Kontrol yang dinonaktifkan tidak dapat berhasil.
Dengan kata lain, spesifikasi mengatakan bahwa kontrol yang dinonaktifkan dianggap tidak valid dan tidak boleh diserahkan.
Disabled
kontrol tidak dapat berhasil, dan kontrol yang berhasil adalah "valid" untuk pengiriman. Ini adalah alasan mengapa kontrol yang dinonaktifkan tidak mengirimkan formulir.
Ada dua atribut, yaitu readonly
dan disabled
, yang dapat membuat input semi-baca-saja. Tetapi ada perbedaan kecil di antara mereka.
<input type="text" readonly />
<input type="text" disabled />
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):
$("#inputID").prop("readonly", true);
$("#inputID").prop("disabled", true);
Pendekatan jQuery (2):
$("#inputID").attr("readonly","readonly");
$("#inputID").attr("disabled", "disabled");
Pendekatan JavaScript:
document.getElementById("inputID").readOnly = true;
document.getElementById("inputID").disabled = true;
PS disabled
dan readonly
merupakan atribut html standar. prop
diperkenalkan dengan jQuery 1.6
.
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
$('#your_select_id').change(function () {
$('#your_hidden_selectid').val($('#your_select_id').val());
});