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 相关文章推荐
国外Lightbox v2.03.3 最新版 下载
Oct 17 Javascript
ExtJS GTGrid 简单用户管理
Jul 01 Javascript
JQuery从头学起第一讲
Jul 04 Javascript
jQuery中操控hidden、disable等无值属性的方法
Jan 06 Javascript
简述AngularJS相关的一些编程思想
Jun 23 Javascript
JS实现仿雅虎首页快捷登录入口及导航模块效果
Sep 19 Javascript
基于JavaScript实现屏幕滚动效果
Jan 18 Javascript
利用Node.js编写跨平台的spawn语句详解
Feb 12 Javascript
微信小程序商城项目之商品属性分类(4)
Apr 17 Javascript
JavaScript实现简单图片轮播效果
Aug 21 Javascript
vue-swiper的使用教程
Aug 30 Javascript
Vue+Bootstrap收藏(点赞)功能逻辑与具体实现
Oct 22 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查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
判断php数组是否为索引数组的实现方法
2013/06/13 PHP
PHP时间和日期函数详解
2015/05/08 PHP
CodeIgniter 完美解决URL含有中文字符串
2016/05/13 PHP
用box固定长宽实现图片自动轮播js代码
2014/06/09 Javascript
Jquery实现图片预加载与延时加载的方法
2014/12/22 Javascript
使用js画图之圆、弧、扇形
2015/01/12 Javascript
浅析Node.js中使用依赖注入的相关问题及解决方法
2015/06/24 Javascript
在Mac OS下使用Node.js的简单教程
2015/06/24 Javascript
JS选中checkbox后获取table内一行TD所有数据的方法
2015/07/01 Javascript
javascript常用函数(1)
2015/11/04 Javascript
JS鼠标拖拽实例分析
2015/11/23 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
2016/06/22 Javascript
微信小程序 地图map详解及简单实例
2017/01/10 Javascript
canvas基础绘制-绚丽倒计时的实例
2017/09/17 Javascript
基于vue2.x的电商图片放大镜插件的使用
2018/01/22 Javascript
vue中改变选中当前项的显示隐藏或者状态的实现方法
2018/02/08 Javascript
微信小程序实现页面分享onShareAppMessage
2019/08/12 Javascript
vue表单中遍历表单操作按钮的显示隐藏示例
2019/10/30 Javascript
jquery实现拖拽小方块效果
2020/12/10 jQuery
python计数排序和基数排序算法实例
2014/04/25 Python
mac下pycharm设置python版本的图文教程
2018/06/13 Python
用xpath获取指定标签下的所有text的实例
2019/01/02 Python
使用python 将图片复制到系统剪贴中
2019/12/13 Python
TensorBoard 计算图的可视化实现
2020/02/15 Python
Python双链表原理与实现方法详解
2020/02/22 Python
美国网上书店:Barnes & Noble
2018/08/15 全球购物
优秀毕业大学生推荐信
2013/11/13 职场文书
团日活动总结
2014/04/28 职场文书
责任书格式范文
2014/07/28 职场文书
小学生国庆演讲稿
2014/09/05 职场文书
单位租房协议范本
2014/12/03 职场文书
司机岗位职责范本
2015/04/10 职场文书
2015年大学班级工作总结
2015/04/28 职场文书
民政局2016年“六一”儿童节慰问活动总结
2016/04/06 职场文书
进阶篇之linux环境下安装MySQL数据库
2022/04/09 MySQL