ครั้งก่อน ผมได้เขียน วิธีการสร้างปุ่ม เลือกทั้งหมด ไปแล้วครั้งหนึ่ง มาวันนี้ผมจะแสดงวิธีสร้างปุ่ม แบบเลือกตรงข้าม ถ้าท่านไม่เข้าใจว่า เลือกตรงข้ามเป็นยังไง ลอง Live Demo ดูครับ
โค้ด
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Play with Checkbox</title> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> <script type="text/javascript"> $(function(){ $("#checkinverse").click(function(){ var ctl_unchecked = $(":checkbox:not(:checked)"); var ctl_checked = $(":checkbox:checked"); ctl_unchecked.attr( "checked","checked" ); ctl_checked.removeAttr( "checked" ); }); }) </script> </head> <body> <form id="form1" name="form1" method="post" action=""> <p><input type="button" name="checkinverse" id="checkinverse" value="Check Inverse" /> </p> <p><input type="checkbox" name="checkbox" id="checkbox" /> เช็ก 1 </p> <p><input type="checkbox" name="checkbox2" id="checkbox2" /> เช็ก 2</p> <p><input type="checkbox" name="checkbox3" id="checkbox3" /> เช็ก 3</p> <p><input type="checkbox" name="checkbox4" id="checkbox4" /> เช็ก 4</p> </form> </body> </html> |
เมื่อปุ่ม checkinverse ถูกคลิก
$("#checkinverse").click(function(){ |
เก็บเอา checkbox ที่ไม่ถูกเลือกทุกตัว ไว้ในตัวแปร ก่อน
var ctl_unchecked = $(":checkbox:not(:checked)"); |
ตัวไหนที่ถูกเลือก ก็เก็บใว้ในตัวแปรซะ สาเหตุที่ต้องทำอย่างนี้ จะได้รู้ว่าตัวไหนบ้างที่ถูกเลือก ตัวไหนบ้างที่ไม่ถูกเลือก
var ctl_checked = $(":checkbox:checked"); |
ตัวที่ไม่ได้เลือก ให้เลือก
ctl_unchecked.attr( "checked","checked" ); |
ตัวที่เคยเลือก ก็ให้ยกเลิกการเลือกซะ
ctl_checked.removeAttr( "checked" ); |
เพียงเท่านี้ เมื่อท่าน ลองเลือกเช็กบ้อกสักสองตัว แล้วลองคลิกที่ปุ่ม checkinverse เช็กบ้อกก็จะถูกเลือกสลับไปสลับมา
Leave a Reply