js点击文本框弹出可选择的checkbox复选框
作者:bea
本文分享一段代码实例,它能够点击文本框的时候,能够弹出下拉的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程序设计有所帮助。
猜你喜欢
您可能感兴趣的文章:
- jquery实现的判断倒计时是否结束代码
- AngularJs中route的使用方法和配置
- JS获取时间的相关函数及时间戳与时间日期之间的转换
- 你一定会收藏的Nodejs代码片段
- 分享我对JS插件开发的一些感想和心得
- 关于JavaScript作用域你想知道的一切
- Nodejs中session的简单使用及通过session实现身份验证的方法
- Node.js重新刷新session过期时间的方法
- jquery操作select元素和option的实例代码
- Javascript获取统一管理的提示语(message)
- javascript显示上周、上个月日期的处理方法
- AngularJS向后端ASP.NET API控制器上传文件
- javascript DIV跟随鼠标移动
- javascript鼠标右键菜单自定义效果
- JavaScript获取当前运行脚本文件所在目录的方法
- JavaScript获取对象在页面中位置坐标的方法
- 基于jQuery实现select下拉选择可输入附源码下载
- javascript点击按钮实现隐藏显示切换效果
- JavaScript检查子字符串是否在字符串中的方法