点击文本框弹出可供选择的checkbox复选框代码实例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了点击文本框弹出可供选择的checkbox复选框代码实例相关的知识,希望对你有一定的参考价值。

点击文本框弹出可供选择的checkbox复选框代码实例:
本章节分享一段代码实例,它能够点击文本框的时候,能够弹出下拉的checkbox复选框,选中复选框就能够将值写入文本框中,可能在实际应用中的效果没有这么直白简单,不过可以作为一个例子演示,以便于学习者理解和扩展。
代码如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>蚂蚁部落</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(","));,将数组元素连接成字符串写入文本框。
二.相关阅读:
1.offset()函数可以参阅jQuery的offset()方法一章节。 
2.toggleClass()函数可以参阅jQuery的toggleClass()方法一章节。 
3.input[name=ng]可以参阅jQuery的[attribute=value]选择器一章节。 
4.each()函数可以参阅jQuery的each()方法一章节。 
5.val()函数可以参阅jQuery的val()方法一章节。 
6.join()函数可以参阅javascript的Array对象的join()方法一章节。

原文地址是:http://www.softwhy.com/forum.php?mod=viewthread&tid=14219

更多内容可以参阅:http://www.softwhy.com/jquery/

以上是关于点击文本框弹出可供选择的checkbox复选框代码实例的主要内容,如果未能解决你的问题,请参考以下文章

js如何做到点击文本框弹出日历?

js 实例2 实现模态框弹出;

Checkbox/RadioButton 选择和取消选择弹出窗口中的所有复选框

怎么实现鼠标点击input输入框弹出一个日期选择框

js+css+html点击登录后弹出可拖拽的模态框

jquery日历插件问题