html+javascript+bootstrap实现层级多选框全层全选和多选功能


Posted in Javascript onMarch 09, 2017

想做一个先按层级排序并可以多选的功能,首先倾向于用多层标签式的,直接选定加在文本域里, 查到这文,非常详细,如果大家需要做前面所说的功能,可以参考这个地址,http://mrthink.net/jquery-plugin-iselecttags/

     但是,考虑到如果要做一个选项数不确定、可能非常多,用标签会容易视觉疲劳,同时要求随着选项数的变化,最小程度影响网页布局和效果,于是选择用层级的多选框,也就是设置电脑的那种常见效果。第二层选项可以折叠/展开到第一层下面,用bootstrap的 data-toggle="collapse" data-target="#demo1" 进行关联第二层折叠效果。

     具体代码如下:

<script>
//当第一层选项选定,则该选项下的第二层全部被选定
  function allSelect(check_v, checkname) {
    var v_item = document.getElementsByName(check_v);
    var items = document.getElementsByName(checkname);
    for (var i = 0; i < items.length; ++i) {
      if (v_item[0].checked) {
        items[i].checked = true;
      }
      else {
        items[i].checked = false;
      }
    }
  }
//当第二层选项全部被选定,则第一层被选定;若第二层选项至少有一个没被选定,则第一层不被选定
  function singleSelect2parent(check_v, checkname) {
    var v_item = document.getElementsByName(check_v);
    var items = document.getElementsByName(checkname);
    var childStatus = true;
    for (var i = 0; i < items.length; ++i) {
      childStatus = (childStatus && items[i].checked);
    }
    if (childStatus) {
      v_item[0].checked = true;
    }
    else {
      v_item[0].checked = false;
    }
  }
//全选按钮,点击全选,则所有选项被选中
  function allChecked() {
    var inputItems = document.getElementsByClassName("checkbox2check");
    for (var i = 0; i < inputItems.length; i++) {
      var checkItems = document.getElementsByName("checkbox" + (i+1));
      for (var j = 0; j < checkItems.length; j++) {
        checkItems[j].checked = true;
      }
      inputItems[i].checked = true;
    }
  }
</script>
<style>
  ul li{
    list-style:none;
  }
</style>
<div>
  <input class="checkbox2check" type="checkbox" checked name="checkbox_v1" value="version1" onclick="allSelect('checkbox_v1', 'checkbox1')"><a data-toggle="collapse" data-target="#demo1">版本一<b class="caret"></b></a>
  <ul id="demo1" class="collapse in">
    <li> <input type="checkbox" checked name="checkbox1" value="layer1" onclick="singleSelect2parent('checkbox_v1', 'checkbox1')">v1.0.1</li>
    <li> <input type="checkbox" checked name="checkbox1" value="layer2" onclick="singleSelect2parent('checkbox_v1', 'checkbox1')">V1.1.1</li>
    <li> <input type="checkbox" checked name="checkbox1" value="layer3" onclick="singleSelect2parent('checkbox_v1', 'checkbox1')">V1.2.1</li>
    <li> <input type="checkbox" checked name="checkbox1" value="layer4" onclick="singleSelect2parent('checkbox_v1', 'checkbox1')">V1.3.1</li>
  </ul>
</div>
<div>
  <input class="checkbox2check" type="checkbox" checked name="checkbox_v2" value="version2" onclick="allSelect('checkbox_v2', 'checkbox2')"><a data-toggle="collapse" data-target="#demo2">版本二<b class="caret"></b></a>
  <ul id="demo2" class="collapse in">
    <li> <input type="checkbox" checked name="checkbox2" value="layer5" onclick="singleSelect2parent('checkbox_v2', 'checkbox2')">V2.0.1</li>
    <li> <input type="checkbox" checked name="checkbox2" value="layer6" onclick="singleSelect2parent('checkbox_v2', 'checkbox2')">V2.1.1</li>
    <li> <input type="checkbox" checked name="checkbox2" value="layer7" onclick="singleSelect2parent('checkbox_v2', 'checkbox2')">V2.2.1</li>
  </ul>
</div>
<div>
  <input class="checkbox2check" type="checkbox" checked name="checkbox_v3" value="version3" onclick="allSelect('checkbox_v3', 'checkbox3')"><a data-toggle="collapse" data-target="#demo3">版本三<b class="caret"></b></a>
  <ul id="demo3" class="collapse in">
    <li> <input type="checkbox" checked name="checkbox3" value="layer8" onclick="singleSelect2parent('checkbox_v3', 'checkbox3')">V3.0.1</li>
    <li> <input type="checkbox" checked name="checkbox3" value="layer9" onclick="singleSelect2parent('checkbox_v3', 'checkbox3')">V3.1.1</li>
    <li> <input type="checkbox" checked name="checkbox3" value="layer10" onclick="singleSelect2parent('checkbox_v3', 'checkbox3')">V3.2.1</li>
  </ul>
</div>
<button type="button" onclick="allChecked()">全选</button>

以上所述是小编给大家介绍的html+javascript+bootstrap实现层级多选框全层全选和多选功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jBox 2.3基于jquery的最新多功能对话框插件 常见使用问题解答
Nov 10 Javascript
使用jquery动态加载javascript以减少服务器压力
Oct 29 Javascript
jQuery中filter()方法用法实例
Jan 06 Javascript
js的window.showModalDialog及window.open用法实例分析
Jan 29 Javascript
基于JS+Canves实现点击按钮水波纹效果
Sep 15 Javascript
js点击任意区域弹出层消失实现代码
Dec 27 Javascript
JS对象深度克隆实例分析
Mar 16 Javascript
Node.js v8.0.0正式发布!看看带来了哪些主要新特性
Jun 02 Javascript
利用Three.js如何实现阴影效果实例代码
Sep 26 Javascript
vue 解决computed修改data数据的问题
Nov 06 Javascript
你准备好迎接vue3.0了吗
Apr 28 Javascript
Vue 组件复用多次自定义参数操作
Jul 27 Javascript
Node.js常用工具之util模块
Mar 09 #Javascript
js遍历json对象所有key及根据动态key获取值的方法(必看)
Mar 09 #Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
Mar 09 #Javascript
js实现简单的二级联动效果
Mar 09 #Javascript
jquery表单提交带错误信息提示效果
Mar 09 #Javascript
AngularJS 防止页面闪烁的方法
Mar 09 #Javascript
js读取json文件片段中的数据实例
Mar 09 #Javascript
You might like
php生成毫秒时间戳的实例讲解
2017/09/22 PHP
JavaScript 在线压缩和格式化收藏
2009/01/16 Javascript
JS 判断代码全收集
2009/04/28 Javascript
javascript面向对象之Javascript 继承
2010/05/04 Javascript
jQuery学习笔记之jQuery的事件
2010/12/22 Javascript
jQuery中创建实例与原型继承揭秘
2011/12/21 Javascript
jQuery中json对象的复制方式介绍(数组及对象)
2013/06/08 Javascript
JS返回上一页实例代码通过图片和按钮分别实现
2013/08/16 Javascript
JavaScript设计模式之外观模式实例
2014/10/10 Javascript
node.js开机自启动脚本文件
2014/12/24 Javascript
javascript中offset、client、scroll的属性总结
2015/08/13 Javascript
解决wx.onMenuShareTimeline出现的问题
2016/08/16 Javascript
JS获取鼠标相对位置的方法
2016/09/20 Javascript
canvas滤镜效果实现代码
2017/02/06 Javascript
js实现横向拖拽导航条功能
2017/02/17 Javascript
说说如何在Vue.js中实现数字输入组件的方法
2019/01/08 Javascript
vue.js中使用echarts实现数据动态刷新功能
2019/04/16 Javascript
[43:57]LGD vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python手机号码归属地查询代码
2016/05/04 Python
全面了解Nginx, WSGI, Flask之间的关系
2018/01/09 Python
python实现学生信息管理系统
2020/04/05 Python
ubuntu17.4下为python和python3装上pip的方法
2018/06/12 Python
Python迭代器与生成器基本用法分析
2018/07/26 Python
django商品分类及商品数据建模实例详解
2020/01/03 Python
声明struct x1 { . . . }; 和typedef struct { . . . }x2;有什么不同
2012/06/02 面试题
杭州信雅达系统.NET工程师面试试题
2015/02/08 面试题
仓管员岗位职责范文
2013/11/08 职场文书
办公室主任职责范文
2013/11/08 职场文书
大学四年个人自我小结
2014/03/05 职场文书
安全责任书范文
2014/03/12 职场文书
会计专业求职信范文
2014/03/16 职场文书
财务会计专业求职信
2014/06/09 职场文书
“四风”问题的主要表现和危害思想汇报
2014/09/19 职场文书
检讨书之工作不认真
2019/08/14 职场文书
如何使用php生成zip压缩包
2021/04/21 PHP
详解Python中下划线的5种含义
2021/07/15 Python