Jika Anda menggunakan versi JQuery yang relatif baru, saya akan menggunakan .on ('change', function () {...}) seperti yang disebutkan dalam jawaban @Daniel De Leon di bawah ini. Keuntungannya, event listener "on" akan terikat ke html yang dibuat secara dinamis.
Edit: Melakukan ini tidak akan menangkap ketika kotak centang berubah karena alasan lain selain klik, seperti menggunakan keyboard. Untuk menghindari masalah ini, dengarkan, changebukan click.
Kode Anda kehilangan paran, dan benar-benar harus menggunakan cara jQuery untuk mendapatkan status cek.
Pete Michaud
2
Shore: alasan getElementById berfungsi adalah karena ia mengembalikan elemen DOM, sedangkan fungsi $ jQuery mengembalikan objek jQuery. Objek jQuery memiliki elemen DOM sebagai properti, tetapi itu sendiri bukan objek DOM.
Pete Michaud
3
Saya tahu saya datang terlambat ke pesta, tetapi ini hanya berfungsi ketika peristiwa "klik" memicu hal ini. Jika karena alasan tertentu Anda melakukan sesuatu seperti ini di tempat lain dalam kode: $ ("# something"). Attr ("dicentang", "dicentang") peristiwa klik tidak akan pernah dipicu.
David Stinemetze
3
@DavidStinemetze: Saya akan mengatakan bahwa Anda dapat mendengarkan banyak changedaripada mengklik. Saya memperbarui jawabannya
marcgg
44
Klik akan mempengaruhi label jika kita memiliki label yang dilampirkan ke kotak centang input?
Saya pikir lebih baik menggunakan fungsi .change ()
Bagaimana cara menilai apakah sudah diperiksa atau tidak?
omg
Saya perlu tahu apakah sebuah klik berarti mencentang atau menghapus centang.
omg
1
Anda kemudian dapat menggunakan $ (this) .is (': diperiksa') untuk menguji status item yang baru saja diklik
Ty W
-1
$(document).ready(function(){
checkUncheckAll("#select_all","[name='check_boxes[]']");});var NUM_BOXES =10;// last checkbox the user clickedvarlast=-1;function check(event){// in IE, the event object is a property of the window object// in Mozilla, event object is passed to event handlers as a parameterevent=event|| window.event;var num = parseInt(/box\[(\d+)\]/.exec(this.name)[1]);if(event.shiftKey &&last!=-1){var di = num >last?1:-1;for(var i =last; i != num; i += di)
document.forms.boxes['box['+ i +']'].checked=true;}last= num;}function init(){for(var i =0; i < NUM_BOXES; i++)
document.forms.boxes['box['+ i +']'].onclick = check;}
Sepertinya pilihan rentang (yaitu, periksa item pertama, tahan shift ke bawah, periksa yang terakhir; dan semua yang di antaranya dicentang.) Namun, ini lebih dari yang diminta pertanyaan. Hilang beberapa kode, seperti checkUncheckAll ().
Jawaban:
Edit: Melakukan ini tidak akan menangkap ketika kotak centang berubah karena alasan lain selain klik, seperti menggunakan keyboard. Untuk menghindari masalah ini, dengarkan,
change
bukanclick
.Untuk memeriksa / menghapus centang secara terprogram, lihat Mengapa peristiwa perubahan kotak centang saya tidak dipicu?
sumber
change
daripada mengklik. Saya memperbarui jawabannyaKlik akan mempengaruhi label jika kita memiliki label yang dilampirkan ke kotak centang input?
Saya pikir lebih baik menggunakan fungsi .change ()
sumber
Gunakan : pemilih yang dicentang untuk menentukan status kotak centang:
sumber
Untuk penggunaan JQuery 1.7+:
sumber
Gunakan potongan kode di bawah ini untuk mencapai ini:
Atau Anda dapat melakukan hal yang sama dengan kotak centang tunggal:
Untuk demo: http://jsfiddle.net/creativegala/hTtxe/
sumber
Dalam pengalaman saya, saya harus memanfaatkan target acara saat ini:
sumber
Kode ini melakukan apa yang Anda butuhkan:
Juga, Anda dapat memeriksanya di jsfiddle
sumber
gunakan acara klik untuk kompatibilitas terbaik dengan MSIE
sumber
HTML:
sumber