ตัวอย่าง ทำให้ เลือก list box แล้วแสดง checkbox ด้วย jQuery
HTML ตัวอย่าง
<div style="margin:auto;width:400px;"> <form id="form1" name="form1" method="post" action=""> <select name="my_select" id="my_select"> <option value="">เลือกข้อมูล</option> </select> <ul class="myUL1"> <li> <input name="data1" type="checkbox" id="data1" value="1" /> data1</li> <li> <input name="data2" type="checkbox" id="data2" value="2" /> data2</li> <li> <input name="data3" type="checkbox" id="data3" value="3" /> data3</li> <li> <input name="data4" type="checkbox" id="data4" value="4" /> data4</li> <li> <input name="data5" type="checkbox" id="data5" value="5" /> data5</li> <li> <input name="data6" type="checkbox" id="data6" value="6" /> data6</li> </ul> </form> </div>
CSS Code ตัวอย่าง
<style type="text/css"> select#my_select{ width:200px; color:#333333; background-color:#EAEAEA; border:1px solid #999999; } select#my_select option{ color:#333333; background-color:#EAEAEA; border:1px solid #999999; } ul.myUL1{ margin:0px; padding:0px; font-size:12px; width:200px; color:#333333; background-color:#EAEAEA; border:1px solid #999999; position:absolute; display:none; list-style:none; z-index:100; /* ถ้ารายการตัวเลือกมีมาก สามารถกำหนดความสูง แล้วให้มีมี scroll เลื่อนดูข้อมูล โดยเอา comment สองบรรทัดล่างนี้ออก */ /* height:80px; overflow:auto;*/ } ul.myUL1 li{ margin:0px; padding:0px; cursor:pointer; text-indent:5px; list-style:none; } ul.myUL1 li:hover{ margin:0px; padding:0px; cursor:pointer; background-color:#666666; color:#FFFFFF; } </style>
Javascript Code ตัวอย่าง
<script type="text/javascript" src="js/jquery-1.4.1.min.js"></script> <script type="text/javascript"> $(function(){ var obj1="select#my_select"; // กำหนด object เป้าหมาย var obj2="ul.myUL1"; // กำหนด object รายการตัวเลือก $(obj1).focus(function(){ var nX=$(this).offset().left; var nY=$(this).offset().top+($(this).height()+3); $(this).html(""); $(obj2).show().css({ "width":$(this).width()+"px", "left":nX, "top":nY }); $(obj1).html("<option value=\"\">เลือกข้อมูล</option>").blur(); }); $(obj2).children("li").click(function(){ var iCheck=($(this).children("input").attr("checked")=="checked")?false:true; $(this).children("input").attr("checked",iCheck); }); $(obj2).hover(function(){ $(this).show(); },function(){ var setValue=""; var setText=""; $(this).find("input").each(function(key){ if($(this).attr("checked")=="checked"){ setValue+=$(this).val()+","; setText+=$(this).parent("li").text()+","; } }); setText=(setText!="")?setText:"เลือกข้อมูล"; $(this).hide(); $(obj1).html("<option value=\""+setValue+"\">"+setText+"</option>").blur(); }); }); </script>