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 相关文章推荐
javascript eval函数深入认识
Feb 21 Javascript
Javascript 面向对象之重载
May 04 Javascript
js实现简单折叠、展开菜单的方法
Aug 28 Javascript
浅谈JavaScript中的分支结构
Jul 01 Javascript
JS触发服务器控件的单击事件(详解)
Aug 06 Javascript
简单实现js倒计时功能
Feb 13 Javascript
bootstrap的常用组件和栅格式布局详解
May 02 Javascript
兼容浏览器的js事件绑定函数(详解)
May 09 Javascript
element-ui 设置菜单栏展开的方法
Aug 22 Javascript
使用jquery Ajax实现上传附件功能
Oct 23 jQuery
puppeteer实现html截图的示例代码
Jan 10 Javascript
基于ajax及jQuery实现局部刷新过程解析
Sep 12 jQuery
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
哪吒敖丙传:新人物二哥敖乙出场 小敖丙奶气十足
2020/03/08 国漫
深入浅析PHP无限极分类的案例教程
2016/05/09 PHP
PHP实现二维数组中的查找算法小结
2018/06/09 PHP
PHP实现PDO操作mysql存储过程示例
2019/02/13 PHP
Javascript 读后台cookie代码
2008/09/15 Javascript
jQuery 学习第六课 实现一个Ajax的TreeView
2010/05/17 Javascript
javascript实现促销倒计时+fixed固定在底部
2013/09/18 Javascript
js toFixed()方法的重写实现精度的统一
2014/03/06 Javascript
JS中判断字符串中出现次数最多的字符及出现的次数的简单实例
2016/06/03 Javascript
javascript用正则表达式过滤空格的实现代码
2016/06/14 Javascript
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
2016/09/02 Javascript
Spring Boot+AngularJS+BootStrap实现进度条示例代码
2017/03/02 Javascript
JS实现的汉字与Unicode码相互转化功能分析
2018/05/25 Javascript
通过函数作用域和块级作用域看javascript的作用域链
2018/08/05 Javascript
Nodejs 识别图片类型的方法
2019/08/15 NodeJs
Vue-Cli项目优化操作的实现
2019/10/27 Javascript
一起写一个即插即用的Vue Loading插件实现
2019/10/31 Javascript
[01:46]2018完美盛典章节片——坚守
2018/12/17 DOTA
使用Python对IP进行转换的一些操作技巧小结
2015/11/09 Python
python正则实现提取电话功能
2018/02/24 Python
使用Python快速搭建HTTP服务和文件共享服务的实例讲解
2018/06/04 Python
详解opencv Python特征检测及K-最近邻匹配
2019/01/21 Python
pygame实现五子棋游戏
2019/10/29 Python
python+OpenCV实现车牌号码识别
2019/11/08 Python
利用Python绘制Jazz网络图的例子
2019/11/21 Python
美国高级音响品牌:Master&Dynamic
2018/07/05 全球购物
Skyscanner加拿大:全球旅行搜索平台
2018/11/19 全球购物
澳大利亚儿童鞋在线:The Trybe
2019/07/16 全球购物
台湾7-ELEVEN线上购物中心:7-11
2021/01/21 全球购物
新闻专业个人求职信
2013/12/19 职场文书
化验室技术员岗位职责
2013/12/24 职场文书
四个太阳教学反思
2014/02/01 职场文书
党员一帮一活动总结
2014/07/08 职场文书
56句经典英文座右铭
2019/08/09 职场文书
Python-typing: 类型标注与支持 Any类型详解
2021/05/10 Python
CSS布局之浮动(float)和定位(position)属性的区别
2021/09/25 HTML / CSS