Bagaimana cara menangkap check / uncheck event <input type="checkbox" />
dengan jQuery?
Bagaimana cara menangkap check / uncheck event <input type="checkbox" />
dengan jQuery?
Jawaban:
<input type="checkbox" id="something" />
$("#something").click( function(){
if( $(this).is(':checked') ) alert("checked");
});
Edit: Melakukan ini tidak akan menangkap ketika kotak centang berubah karena alasan lain selain klik, seperti menggunakan keyboard. Untuk menghindari masalah ini, dengarkan, change
bukan click
.
Untuk memeriksa / menghapus centang secara terprogram, lihat Mengapa peristiwa perubahan kotak centang saya tidak dipicu?
change
daripada mengklik. Saya memperbarui jawabannya
Klik akan mempengaruhi label jika kita memiliki label yang dilampirkan ke kotak centang input?
Saya pikir lebih baik menggunakan fungsi .change ()
<input type="checkbox" id="something" />
$("#something").change( function(){
alert("state changed");
});
Untuk penggunaan JQuery 1.7+:
$('input[type=checkbox]').on('change', function() {
...
});
Gunakan potongan kode di bawah ini untuk mencapai ini:
$('#checkAll').click(function(){
$("#checkboxes input").attr('checked','checked');
});
$('#UncheckAll').click(function(){
$("#checkboxes input").attr('checked',false);
});
Atau Anda dapat melakukan hal yang sama dengan kotak centang tunggal:
$('#checkAll').click(function(e) {
if($('#checkAll').attr('checked') == 'checked') {
$("#checkboxes input").attr('checked','checked');
$('#checkAll').val('off');
} else {
$("#checkboxes input").attr('checked', false);
$('#checkAll').val('on');
}
});
Untuk demo: http://jsfiddle.net/creativegala/hTtxe/
Dalam pengalaman saya, saya harus memanfaatkan target acara saat ini:
$("#dingus").click( function (event) {
if ($(event.currentTarget).is(':checked')) {
//checkbox is checked
}
});
Kode ini melakukan apa yang Anda butuhkan:
<input type="checkbox" id="check" >check it</input>
$("#check").change( function(){
if( $(this).is(':checked') ) {
alert("checked");
}else{
alert("unchecked");
}
});
Juga, Anda dapat memeriksanya di jsfiddle
gunakan acara klik untuk kompatibilitas terbaik dengan MSIE
$(document).ready(function() {
$("input[type=checkbox]").click(function() {
alert("state changed");
});
});
$(document).ready(function(){
checkUncheckAll("#select_all","[name='check_boxes[]']");
});
var NUM_BOXES = 10;
// last checkbox the user clicked
var last = -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 parameter
event = 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;
}
HTML:
<body onload="init()">
<form name="boxes">
<input name="box[0]" type="checkbox">
<input name="box[1]" type="checkbox">
<input name="box[2]" type="checkbox">
<input name="box[3]" type="checkbox">
<input name="box[4]" type="checkbox">
<input name="box[5]" type="checkbox">
<input name="box[6]" type="checkbox">
<input name="box[7]" type="checkbox">
<input name="box[8]" type="checkbox">
<input name="box[9]" type="checkbox">
</form>
</body>