ฉันต้องการตรวจสอบว่าช่องทำเครื่องหมายถูกยกเลิกการเลือกหรือไม่เมื่อผู้ใช้คลิกที่ช่องนั้น สาเหตุนี้เป็นเพราะฉันต้องการทำการตรวจสอบความถูกต้องเมื่อผู้ใช้ยกเลิกการเลือกช่องทำเครื่องหมาย เนื่องจากต้องเลือกช่องทำเครื่องหมายอย่างน้อยหนึ่งช่อง ดังนั้นหากเขายกเลิกการเลือกรายการสุดท้ายระบบจะตรวจสอบตัวเองอีกครั้งโดยอัตโนมัติ
ด้วย jQuery ฉันสามารถค้นหาได้อย่างง่ายดายว่ามีการตรวจสอบหรือไม่:
$('#check1').click(function() {
if($(this).is(':checked'))
alert('checked');
else
alert('unchecked');
});
แต่จริงๆแล้วฉันต้องการเพียงคำสั่ง if ที่ตรวจสอบว่าช่องทำเครื่องหมายไม่ถูกเลือกหรือไม่
ดังนั้นฉันคิดว่าฉันสามารถทำได้ด้วยรหัสต่อไปนี้:
$('#check2').click(function() {
if($(this).not(':checked'))
alert('unchecked');
else
alert('checked');
});
แต่จะแสดงข้อความ "ไม่เลือก" เสมอ ไม่ใช่สิ่งที่ฉันคาดหวังจริงๆ ...
การสาธิต: http://jsfiddle.net/tVM5H/
ในที่สุดฉันก็ต้องการบางสิ่งเช่น:
$('#check2').click(function() {
if($(this).not(':checked')) {
// Got unchecked, so something!!!
}
});
แต่เห็นได้ชัดว่าสิ่งนี้ไม่ได้ผล ฉันไม่ต้องการใช้ตัวอย่างแรกเพราะฉันมีคำสั่ง 'else' ที่ไม่จำเป็นเมื่อฉันต้องการคำสั่ง 'if' เพียงคำสั่งเดียว
อย่างแรกนี่เป็นบั๊ก jQuery หรือไม่? เพราะฉันเป็นพฤติกรรมที่ไม่คาดคิด และประการที่สองมีใครเป็นตัวแทนสำหรับทางเลือกที่ดี?