本文分享一段代碼實例,它能夠點擊文本框的時候,能夠彈出下拉的checkbox復選框,選中復選框就能夠將值寫入文本框中,可能在實際應用中的效果沒有這么直白簡單,不過可以作為一個例子演示,以便于學習者理解和擴展。
代碼如下:
<html><head><meta charset="gb2312"><title>js點擊文本框彈出可選擇的checkbox復選框</title><style type="text/css">#div{ margin-bottom:10px; position:relative;}#div1{ width:153px; padding-top:0px; padding-left:0px; position:absolute;}#div1 ul{ margin-top:0px; padding-left:0px; background-color:#ccc; list-style:none;}#div1 ul li{ padding-left:0px;}#div1 ul li input{ margin-left:15px;}.close{ display:none;}.open{ display:block;}</style><script type="text/javascript" src="mytest/jQuery/jquery-1.8.3.js"></script><script type="text/javascript"> $(function(){  var position=$("#xx").offset();  $("#div1").offset({   top:position.top+22,  left:position.left });  $("#xx").click(function(){   $("#NG").toggleClass("open");  }); $("#div1 input[name=ng]").click(function(){   var arr=new Array();   $("input[name=ng]:checked").each(function(key,value){   arr[key]=$(value).val();  });   $("#xx").val(arr.join(","));  }) }) </script></head><body><div id="div"> <div align="center" id="div2" >  <form id="form1">   <input type="text" readonly="readonly" id="xx"/>   <input type="submit" value="查詢"/>  </form> </div> <div id="div1">  <ul class="close" id="NG" >   <li><input type="checkbox" name="ng" value=1 />1</li>   <li><input type="checkbox" name="ng" value=2 />2</li>   <li><input type="checkbox" name="ng" value=3 />3</li>  </ul> </div></div></body></html>以上代碼實現了我們的要求,下面介紹一下它的實現過程。
代碼注釋:
1.$(function(){}),當文檔結構完全加載完畢再去執行函數中的代碼。
2.var position=$("#xx").offset(),獲取文本框相對于document文檔的偏移量,offset()函數返回的是一個對象,此對象包含兩個屬性left和top,分別表示相對于文檔的水平和垂直偏移量。
3.$("#div1").offset({top:position.top+22,left:position.left}),設置彈出下拉菜單容器的相對文檔的偏移量,第一個加22是為了使其在文本框的下面顯示。
4.$("#xx").click(function(){$("#NG").toggleClass("open");}),為文本框注冊click事件處理函數,點擊它可以切換樣式類open刪除和添加,也就是設置下拉菜單的顯示和隱藏。
5.$("#div1 input[name=ng]").click(function(){ }),為name屬性值為ng的文本框注冊click事件處理函數。
6.var arr=new Array(),創建一個數組,用來存放選中checkbox復選框的value值。
7.$("input[name=ng]:checked").each(function(key,value){arr[key]=$(value).val();}),將選中的復選框的值存入數組。
8.$("#xx").val(arr.join(","));,將數組元素連接成字符串寫入文本框。
希望本文所述對大家學習javascript程序設計有所幫助。
新聞熱點
疑難解答