js点击文本框弹出可选择的checkbox复选框


Posted in Javascript onFebruary 03, 2016

本文分享一段代码实例,它能够点击文本框的时候,能够弹出下拉的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程序设计有所帮助。

Javascript 相关文章推荐
Jquery 基础学习笔记之文档处理
May 29 Javascript
理解 JavaScript 预解析
Oct 25 Javascript
初窥JQuery(二) 事件机制(1)
Nov 25 Javascript
将数字转换成大写的人民币表达式的js函数
Sep 21 Javascript
jQuery异步获取json数据方法汇总
Dec 22 Javascript
动态加载jQuery的两种方法实例分析
Jul 17 Javascript
Web程序员必备的7个JavaScript函数
Jun 14 Javascript
浅谈js和css内联外联注意事项
Jun 30 Javascript
JavaScript 身份证号有效验证详解及实例代码
Oct 20 Javascript
jQuery实现的自定义轮播图功能详解
Dec 28 jQuery
js中事件对象和事件委托的介绍
Jan 21 Javascript
VUEX采坑之路之获取不到$store的解决方法
Nov 08 Javascript
AngularJS实现Model缓存的方式
Feb 03 #Javascript
JS实现CheckBox复选框全选、不选或全不选功能
Jul 28 #Javascript
javascript实现在网页中运行本地程序的方法
Feb 03 #Javascript
简单实现js选项卡切换效果
Feb 03 #Javascript
Eclipse编辑jsp、js文件时卡死现象的解决办法汇总
Feb 02 #Javascript
JavaScript+html5 canvas实现本地截图教程
Apr 16 #Javascript
javascript自定义滚动条实现代码
Apr 20 #Javascript
You might like
php面向对象全攻略 (二) 实例化对象 使用对象成员
2009/09/30 PHP
fleaphp常用方法分页之Pager使用方法
2011/04/23 PHP
Mac下php 5升级到php 7的步骤详解
2017/04/26 PHP
PHP完全二叉树定义与实现方法示例
2017/10/09 PHP
form中限制文本字节数js代码
2007/06/10 Javascript
ExtJS 下拉多选框lovcombo
2010/05/19 Javascript
jquery ready函数、css函数及text()使用示例
2013/09/27 Javascript
用js正确判断用户名cookie是否存在的方法
2014/01/28 Javascript
javascript元素动态创建实现方法
2015/05/13 Javascript
跟我学习javascript创建对象(类)的8种方法
2015/11/20 Javascript
JavaScript File分段上传
2016/03/10 Javascript
Extjs4.0 ComboBox如何实现三级联动
2016/05/11 Javascript
完美解决jQuery 鼠标快速滑过后,会执行多次滑出的问题
2016/12/08 Javascript
bootstrap datetimepicker日期插件超详细使用方法介绍
2017/02/23 Javascript
JS正则表达式验证账号、手机号、电话和邮箱是否合法
2017/03/08 Javascript
浅析JS抽象工厂模式
2017/12/14 Javascript
JS伪继承prototype实现方法示例
2018/06/20 Javascript
详解element-ui中form验证杂记
2019/03/04 Javascript
javascript面向对象创建对象的方式小结
2019/07/29 Javascript
如何使用webpack打包一个库library的方法步骤
2019/12/18 Javascript
[02:40]DOTA2英雄基础教程 炼金术士
2013/12/23 DOTA
python paramiko模块学习分享
2017/08/23 Python
python库lxml在linux和WIN系统下的安装
2018/06/24 Python
python实现逆滤波与维纳滤波示例
2020/02/26 Python
python+selenium+Chrome options参数的使用
2020/03/18 Python
为什么python比较流行
2020/06/19 Python
凯特方迪化妆品官网:Kat Von D Beauty
2016/11/15 全球购物
学生的自我鉴定范文
2013/10/24 职场文书
外贸业务员的岗位职责
2013/11/23 职场文书
家长给孩子的评语
2014/01/30 职场文书
产品包装策划方案
2014/05/18 职场文书
四风问题自查自纠工作情况报告
2014/10/28 职场文书
2016参观监狱警示教育活动心得体会
2016/01/15 职场文书
导游词之太原天龙山
2020/01/02 职场文书
为什么MySQL不建议使用SELECT *
2022/04/03 MySQL
css中有哪些方式可以隐藏页面元素及区别
2022/06/16 HTML / CSS