apakah ada cara untuk menonaktifkan semua bidang (textarea / textfield / option / input / checkbox / submit dll) dalam formulir dengan mengatakan hanya nama div induk di jquery / javascript?
Perhatikan bahwa dengan melakukan ini, Anda menyebabkan nilai elemen-elemen itu "menghilang" ketika mengirimkan formulir - untuk mempertahankan nilai membuatnya readOnly, bukan dinonaktifkan.
dapatkah saya menggunakan ini untuk mengatur semua input di dalam div ke nilai 0?
jackson5
2
Saya ingin menonaktifkan <a> juga ... <a> saya juga memiliki klik
RAJ
7
Mengutip jQuery : Karena: input adalah ekstensi jQuery dan bukan bagian dari spesifikasi CSS, permintaan menggunakan: input tidak dapat memanfaatkan peningkatan kinerja yang disediakan oleh metode DOM querySelectorAll () asli. Untuk mencapai kinerja terbaik saat menggunakan: input untuk memilih elemen, pertama pilih elemen menggunakan pemilih CSS murni, kemudian gunakan .filter (": input").
acme
2
@acme: Setuju 100% tetapi pertanyaannya tidak memberikan petunjuk apa pun untuk pemilih yang bisa saya filter. Satu-satunya informasi yang diberikan kepada saya adalah bahwa pengguna harus dapat melakukannya dengan nama indukdiv dan hanya itu. Jika diberi informasi lebih lanjut, saya bisa mendapatkan solusi yang lebih efisien.
Andrew Whitaker
1
Gunakan .prop () alih-alih .attr () (di atas jquery 1.6)
seharusnya ('input, textarea, button') semua penyeleksi harus dikutip dengan satu set kutipan. api.jquery.com/multiple-selector Melakukannya dengan cara Anda mengirim banyak argumen.
Ivan Ivanić
2
Ini hanya akan menemukan Anda input, mengabaikan area dan tombol teks. Selector input adalah cara untuk melakukannya, tetapi jika Anda ingin membuat daftar secara eksplisit, Anda harus menggunakannya $('#mydiv').find('input, textarea, button').
Mark Hildreth
1
... atau hanya $ ('# formulir Anda'). children (). prop ('dinonaktifkan', true);
walv
@walv kode Anda hanya berfungsi jika semua elemen formulir merupakan turunan tunggal dari formulir. Find () menemukan semua elemen dalam daftar terlepas dari level turunan. Baris kode ini benar selain menggunakan prop bukan attr untuk versi jquery baru.
Chris O
32
Untuk jquery 1.6+, gunakan .prop()sebagai ganti .attr(),
Saya menggunakan fungsi di bawah ini di berbagai titik. Bekerja dalam elemen div atau tombol dalam sebuah tabel selama pemilih kanan digunakan. Hanya ": tombol" tidak akan mengaktifkan kembali untuk saya.
Bagi saya jawaban yang diterima tidak berfungsi karena saya memiliki beberapa bidang tersembunyi asp net yang dinonaktifkan juga jadi saya memilih hanya untuk menonaktifkan bidang yang terlihat
//just to save the list so we can enable fields latervar list =[];
$('#parent-selector').find(':input:visible:not([readonly][disabled]),button').each(function(){
list.push('#'+this.id);});
$(list.join(',')).attr('readonly',true);
readOnly
, bukan dinonaktifkan.Jawaban:
Coba gunakan
:input
pemilih, bersama dengan pemilih induk:sumber
div
dan hanya itu. Jika diberi informasi lebih lanjut, saya bisa mendapatkan solusi yang lebih efisien.sumber
$('#mydiv').find('input, textarea, button')
.Untuk jquery 1.6+, gunakan
.prop()
sebagai ganti.attr()
,atau
sumber
sumber
Sederhananya baris kode ini akan menonaktifkan semua elemen input
sumber
Bagaimana dengan mencapai ini hanya menggunakan atribut HTML 'dinonaktifkan'
Hanya dengan menonaktifkannya di set field, semua bidang di dalam setset tersebut akan dinonaktifkan.
sumber
Saya menggunakan fungsi di bawah ini di berbagai titik. Bekerja dalam elemen div atau tombol dalam sebuah tabel selama pemilih kanan digunakan. Hanya ": tombol" tidak akan mengaktifkan kembali untuk saya.
sumber
Mengikuti akan menonaktifkan semua input tetapi tidak akan mampu untuk btn kelas dan juga menambahkan kelas untuk menimpa menonaktifkan css.
kelas css
sumber
Bagi saya jawaban yang diterima tidak berfungsi karena saya memiliki beberapa bidang tersembunyi asp net yang dinonaktifkan juga jadi saya memilih hanya untuk menonaktifkan bidang yang terlihat
sumber
Gunakan Kelas CSS untuk mencegah dari Mengedit Elemen Div
CSS:
JS:
Atau tambahkan nama kelas dalam Tag HTML. Ini akan mencegah dari mengedit Elemen Div.
sumber
Hanya tipe teks
Hanya tipe kata sandi
Hanya Jenis Email
sumber