Bir kullanıcı tıkladığında bir onay kutusunun henüz işaretlenmemiş olup olmadığını kontrol etmek istiyorum. Bunun nedeni, bir kullanıcı bir onay kutusunun işaretini kaldırdığında bir doğrulama yapmak istememdir. Çünkü en az bir onay kutusunun işaretlenmesi gerekiyor. Yani sonuncunun işaretini kaldırırsa, otomatik olarak kendini tekrar kontrol eder.
JQuery ile kontrol edilip edilmediğini kolayca öğrenebilirim:
$('#check1').click(function() {
if($(this).is(':checked'))
alert('checked');
else
alert('unchecked');
});
Ama aslında sadece bir onay kutusunun işaretli olup olmadığını kontrol eden bir if ifadesine sahip olmak istiyorum.
Bu yüzden bunu aşağıdaki kodla yapabileceğimi düşündüm:
$('#check2').click(function() {
if($(this).not(':checked'))
alert('unchecked');
else
alert('checked');
});
Ancak bu her zaman 'kontrol edilmemiş' mesajı gösterecektir. Beklediğim gibi değil ...
demo: http://jsfiddle.net/tVM5H/
Bu yüzden sonunda şöyle bir şeye ihtiyacım var:
$('#check2').click(function() {
if($(this).not(':checked')) {
// Got unchecked, so something!!!
}
});
Ama belli ki bu işe yaramıyor. İlk örneği kullanmak istemem çünkü o zaman sadece bir "if" ifadesine ihtiyacım olduğunda gereksiz bir "else" ifadesine sahip olurdum.
İlk olarak, bu bir jQuery hatası mı? Bana göre beklenmedik bir davranış. İkincisi, iyi bir alternatif arayan var mı?