ลิมิต จำนวน checkbox ด้วย jquery
ส่วนนึงของงานที่ทำวันนี้คือ ต้องจำกัดไม่ให้ user คลิกเลือก เกินกว่าที่เรากำหนด สมมุติผมกำหนดให้เลือกได้แค่ 20 อัน เราก็เขียน javascript บน jQuery ได้ดังนี้
var limit=20;
$(":checkbox[name$='email[]']").bind("click",function() {
var result = ($(":checkbox[name$='email[]']:checked").size() <= limit);
if( result ){
;
}else{
alert("เลือกได้ " + limit + "รายการเท่านั้น")
}
return result;
});
ตั้งค่าจำนวนได้ที่ บรรทัดที่ 1 เลยนะครับ แล้วมีข้อสังเกตุที่บรรทัดที่ 2 และ 3 ที่ต้องเปลี่ยนชื่อของ checkbox ด้วยครับ จากตัวอย่างผมใช้เป็น email[] ถ้าคุณตั้งชื่อ checkbox ว่าอะไรก็เปลี่ยนไปตามนั้นเลยครับ
ส่วนนี้คือการป้องกันจากส่วนของ user แต่เราต้องไม่ลืม กันส่วนที่เกิดจาก hacker ด้วยนะครับ เช่น ถ้าผู้ใช้ไม่ได้เปิด javascript จุดนี้ก็ไม่ทำงานแล้ว ก็ต้องไม่ลืมไปเช็คด้วย php อีกทีตอนรับค่าด้วยครับ
อ้อ ลืมบอก ว่าผมไม่ได้คิดเองนะครับ แต่ก็จำไม่ได้เช่นกันว่าเอามาจากเว็บใดครับ
และอีกเรื่องที่เน้นคือ ต้องบน jQuery นะครับ ถ้าเป็น javaScript pureเลยไม่ทำงานครับ
เท่านี้ก็เรียบร้อย