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 相关文章推荐
JS的递增/递减运算符和带操作的赋值运算符的等价式
Dec 08 Javascript
JavaScript高级程序设计(第3版)学习笔记11 内建js对象
Oct 11 Javascript
js去字符串前后空格5种实现方法及比较
Apr 03 Javascript
Javascript解析URL方法详解
Dec 05 Javascript
深入理解$.each和$(selector).each
May 15 Javascript
AngularJS自定义指令之复制指令实现方法
May 18 Javascript
vuex 使用文档小结篇
Jan 11 Javascript
浅析Vue 生命周期
Jun 21 Javascript
jquery插件开发模式实例详解
Jul 20 jQuery
小程序怎样让wx.navigateBack更好用的方法实现
Nov 01 Javascript
封装 axios+promise通用请求函数操作
Aug 11 Javascript
了不起的11个JavaScript代码重构最佳实践小结
Jan 11 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生成静态HTML速度快类库
2007/03/18 PHP
快速开发一个PHP扩展图文教程
2008/12/12 PHP
用js进行url编码后用php反解以及用php实现js的escape功能函数总结
2010/02/08 PHP
hadoop常见错误以及处理方法详解
2013/06/19 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
用正则xmlHttp实现的偷(转)
2007/01/22 Javascript
用js判断用户浏览器是否是XP SP2的IE6
2007/03/08 Javascript
javascript实现的在当前窗口中漂浮框的代码
2010/03/15 Javascript
jQuery 删除/替换DOM元素的几种方式
2014/05/20 Javascript
jQuery mobile 移动web(4)
2015/12/20 Javascript
动态更新highcharts数据的实现方法
2016/05/28 Javascript
基于vue-simplemde实现图片拖拽、粘贴功能
2018/04/12 Javascript
node基于puppeteer模拟登录抓取页面的实现
2018/05/09 Javascript
javascript中数组的常用算法深入分析
2019/03/12 Javascript
小程序富文本提取图片可放大缩小
2020/05/26 Javascript
vue实现在进行增删改操作后刷新页面
2020/08/05 Javascript
Python实现数据库编程方法详解
2015/06/09 Python
Python获取某一天是星期几的方法示例
2017/01/17 Python
Python中用字符串调用函数或方法示例代码
2017/08/04 Python
Python利用公共键如何对字典列表进行排序详解
2018/05/19 Python
在pycharm中设置显示行数的方法
2019/01/16 Python
Django框架orM与自定义SQL语句混合事务控制操作
2019/06/27 Python
Python气泡提示与标签的实现
2020/04/01 Python
Python定时任务APScheduler原理及实例解析
2020/05/30 Python
Python实现弹球小游戏
2020/08/01 Python
小白教你PyCharm从下载到安装再到科学使用PyCharm2020最新激活码
2020/09/25 Python
Python 3.9的到来到底是意味着什么
2020/10/14 Python
京东港澳售:京东直邮港澳台
2018/01/31 全球购物
秋季运动会加油稿200字
2014/01/11 职场文书
小班秋游活动方案
2014/02/22 职场文书
资金主管岗位职责范本
2014/03/04 职场文书
委托公证书样本
2015/01/23 职场文书
运动会表扬稿范文
2015/05/05 职场文书
探讨Java中的深浅拷贝问题
2021/06/26 Java/Android
R9700摩机记
2022/04/05 无线电