Saya tahu cara melihat apakah kotak centang dipilih atau tidak.
Tapi saya mengalami masalah dengan yang berikut - diberikan id formulir saya perlu melihat apakah ada kotak centang yang dipilih (yaitu 1 atau lebih), dan saya perlu melihat apakah tidak ada yang dipilih. Pada dasarnya saya membutuhkan dua fungsi terpisah yang menjawab dua pertanyaan ini. Bantuan akan dihargai. Terima kasih!
Sebenarnya, saya hanya perlu fungsi untuk memberi tahu saya jika tidak ada yang dipilih. Mengetahui hal ini akan menjawab pertanyaan lain.
javascript
jquery
forms
bba
sumber
sumber
Jawaban:
Anda dapat menggunakan sesuatu seperti ini
sumber
$("#formID input:checkbox:checked").length
akan cukup di sini jugaif ($("#formID input:checkbox:checked").length){}
(tanpa>0
) akan cukup karena 0 adalah nilai falsey, lihat james.padolsey.com/javascript/truthy-falsey:checkbox
pemilih :,For better performance in modern browsers, use [type="checkbox"]
lihat api.jquery.com/checkbox-selector - sama untuk radiobuttons btw,use [type="radio"] rather than :radio
api.jquery.com/radio-selectorJQuery
.is
akan menguji semua elemen yang ditentukan dan mengembalikan true jika setidaknya salah satu dari mereka cocok dengan pemilih:sumber
is()
tampaknya berfungsi, memiliki:checked
langsung di pemilih seperti yang ditunjukkan dalam jawaban @ rahul tampaknya lebih tepat. is () tampaknya lebih bermanfaat ketika "di dalam panggilan balik", lihat api.jquery.com/is . Atau apakah saya melewatkan sesuatu?.is(":checked")
dalam solusi Anda lebih ekspresif, tidak yakin tentang sisanya.$("form input[type=checkbox]").is(":checked")
mungkin pendekatan yang lebih sederhana & lebih umum.is
mungkin kinerja yang lebih baik, karena berhenti segera setelah menemukannya.Kamu bisa melakukan ini:
Dimana:
:checkbox
filter selector memilih semua kotak centang.:checked
akan memilih kotak centang yang dicentanglength
akan memberikan jumlah yang diperiksa di sanasumber
:checkbox
pemilih :,For better performance in modern browsers, use [type="checkbox"]
lihat api.jquery.com/checkbox-selectorIni yang saya gunakan untuk memeriksa apakah ada kotak centang dalam daftar kotak centang telah berubah:
sumber
Tanpa menggunakan 'panjang' Anda bisa melakukannya seperti ini:
sumber
Anda dapat melakukan pengembalian sederhana di
.length
sini:Ini mencari kotak centang dalam bentuk yang diberikan, melihat apakah ada
:checked
dan kembalitrue
jika mereka (karena panjangnya akan 0 sebaliknya). Untuk membuatnya sedikit lebih jelas, inilah versi yang dikonversi non boolean:Ini akan menghasilkan hitungan berapa banyak yang diperiksa.
sumber
Jawaban Rahul paling cocok untuk pertanyaan Anda. Lagi pula, jika Anda memiliki sekelompok kotak centang untuk diperiksa dan tidak semua kotak centang dalam formulir Anda, Anda dapat melakukannya.
Masukkan nama kelas untuk semua kotak centang yang ingin Anda periksa, katakan misalnya, nama kelas
test_check
dan sekarang Anda dapat memeriksa apakah ada kotak centang yang dicentang milik grup dengan:Jika kembali
true
, asumsikan bahwa satu atau lebih kotak centang dicentang memiliki nama kelastest_check
dan tidak ada yang diperiksa jika kembalifalse
.Semoga ini bisa membantu seseorang. Terima kasih :)
sumber
Ini adalah cara terbaik untuk menyelesaikan masalah ini.
sumber