Saya ingin memeriksa apakah kotak centang baru saja tidak dicentang, ketika pengguna mengkliknya. Alasan untuk ini adalah karena saya ingin melakukan validasi ketika pengguna menghapus centang pada kotak centang. Karena setidaknya satu kotak centang perlu diperiksa. Jadi jika dia tidak mencentang yang terakhir, maka secara otomatis memeriksa dirinya sendiri lagi.
Dengan jQuery saya dapat dengan mudah mengetahui apakah itu dicentang atau tidak:
$('#check1').click(function() {
if($(this).is(':checked'))
alert('checked');
else
alert('unchecked');
});
Tetapi saya sebenarnya hanya ingin memiliki pernyataan if yang memeriksa apakah kotak centang baru saja tidak dicentang.
Jadi saya pikir saya bisa melakukannya dengan kode berikut:
$('#check2').click(function() {
if($(this).not(':checked'))
alert('unchecked');
else
alert('checked');
});
Tapi ini akan selalu menampilkan pesan 'tidak dicentang'. Tidak seperti yang saya harapkan ...
demo: http://jsfiddle.net/tVM5H/
Jadi akhirnya saya membutuhkan sesuatu seperti:
$('#check2').click(function() {
if($(this).not(':checked')) {
// Got unchecked, so something!!!
}
});
Tapi jelas ini tidak berhasil. Saya lebih suka tidak ingin menggunakan contoh pertama, karena kemudian saya akan memiliki pernyataan 'else' yang tidak perlu ketika saya hanya membutuhkan satu pernyataan 'jika'.
Jadi hal pertama, apakah ini bug jQuery? Sebab bagi saya itu perilaku yang tidak terduga. Dan kedua, adakah ide untuk alternatif yang baik?