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 相关文章推荐
jQuery AjaxQueue改进步骤
Oct 06 Javascript
js中的caller和callee属性介绍和例子
Jun 07 Javascript
js脚本实现数据去重
Nov 27 Javascript
jquery实现键盘左右翻页特效
Apr 30 Javascript
jquery表单插件Autotab使用方法详解
Jun 24 Javascript
JavaScript中关于iframe滚动条的去除和保留
Nov 17 Javascript
js 性能优化之算法和流程控制
Feb 15 Javascript
AngularJS实现根据不同条件显示不同控件
Apr 20 Javascript
微信小程序wx.uploadfile 本地文件转base64的实现代码
Jun 28 Javascript
ES6 系列之 Generator 的自动执行的方法示例
Oct 19 Javascript
js实现继承的方法及优缺点总结
May 08 Javascript
微信小程序实现订单倒计时
Nov 01 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版淘宝网查询商品接口代码示例
2014/06/17 PHP
Yii框架获取当前controlle和action对应id的方法
2014/12/03 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法
2017/09/13 PHP
JavaScript Accessor实现说明
2010/12/06 Javascript
javascript动画对象支持加速、减速、缓入、缓出的实现代码
2012/09/30 Javascript
文本框只能选择数据到文本框禁止手动输入
2013/11/22 Javascript
javascript中数组中求最大值示例代码
2013/12/18 Javascript
利用js(jquery)操作Cookie的方法说明
2013/12/19 Javascript
jquery的ajax异步请求接收返回json数据实例
2014/06/16 Javascript
JavaScript实现页面定时刷新(定时器,meta)
2016/10/12 Javascript
mint-ui的search组件在键盘显示搜索按钮的实现方法
2017/10/27 Javascript
浅谈JavaScript面向对象--继承
2019/03/20 Javascript
详解Vue之父子组件传值
2019/04/01 Javascript
webpack4手动搭建Vue开发环境实现todoList项目的方法
2019/05/16 Javascript
JS 5种遍历对象的方式
2020/06/16 Javascript
不依任何赖第三方,单纯用vue实现Tree 树形控件的案例
2020/09/21 Javascript
[01:47]2018年度DOTA2最佳教练-完美盛典
2018/12/16 DOTA
[49:12]完美世界DOTA2联赛PWL S2 Magma vs GXR 第二场 11.29
2020/12/02 DOTA
[49:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第二场 3月4日
2021/03/11 DOTA
python实现用于测试网站访问速率的方法
2015/05/26 Python
Python编程之黑板上排列组合,你舍得解开吗
2017/10/30 Python
Django使用Mysql数据库已经存在的数据表方法
2018/05/27 Python
python读取txt文件中特定位置字符的方法
2018/12/24 Python
python游戏地图最短路径求解
2019/01/16 Python
Python3爬虫关于识别点触点选验证码的实例讲解
2020/07/30 Python
如何在scrapy中集成selenium爬取网页的方法
2020/11/18 Python
基于Python的接口自动化读写excel文件的方法
2021/01/15 Python
通过canvas转换颜色为RGBA格式及性能问题的解决
2019/11/22 HTML / CSS
澳大利亚领先的在线机械五金、园艺和存储专家:Edisons
2018/03/24 全球购物
SKECHERS斯凯奇中国官网:来自美国的运动休闲品牌
2018/11/14 全球购物
给物业的表扬信
2014/01/21 职场文书
党的群众路线教育实践活动总结报告
2014/07/03 职场文书
党的群众路线整改落实情况汇报
2014/10/28 职场文书
学生考试舞弊检讨书
2015/01/01 职场文书
JavaScript 对象创建的3种方法
2021/11/17 Javascript