这篇文章主要介绍了 js 点击文本框弹出可选择的 checkbox 复选框的相关资料, 需要的朋友可以参考下
Javascript 是一种由 Netscape 的 LiveScript 发展而来的原型化继承的基于对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如 Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
本文分享一段代码实例,它能够点击文本框的时候,能够弹出下拉的 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 程序设计有所帮助。
来源: http://www.phperz.com/article/17/0222/267225.html