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 04 Javascript
jquery学习笔记二 实现可编辑的表格
Apr 09 Javascript
javascript学习笔记(三)显示当时时间的代码
Apr 08 Javascript
JQuery 图片的展开和伸缩实例讲解
Apr 18 Javascript
javascript删除option选项的多种方法总结
Nov 22 Javascript
javascript类型系统 Array对象学习笔记
Jan 09 Javascript
手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现
Aug 25 Javascript
Bootstrap Img 图片样式(推荐)
Dec 13 Javascript
微信小程序 解析网页内容详解及实例
Feb 22 Javascript
使用JavaScriptCore实现OC和JS交互详解
Mar 28 Javascript
创建echart多个联动的示例代码
Nov 23 Javascript
js实现简单的秒表
Jan 16 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
基于数据库的在线人数,日访问量等统计
2006/10/09 PHP
解析PHP SPL标准库的用法(遍历目录,查找固定条件的文件)
2013/06/18 PHP
深入解析phpCB批量转换的代码示例
2013/06/27 PHP
JS面向对象编程之对象使用分析
2010/08/19 Javascript
捕获键盘事件(且兼容各浏览器)
2013/07/03 Javascript
js简单实现用户注册信息的校验代码
2013/11/15 Javascript
含有CKEditor的表单如何提交
2014/01/09 Javascript
jquery判断浏览器后退时候弹出消息的方法
2014/08/11 Javascript
Javascript中数组sort和reverse用法分析
2014/12/30 Javascript
javascript实现时间格式输出FormatDate函数
2015/01/13 Javascript
Javascript 实现全屏滚动实例代码
2016/12/31 Javascript
javascript 网页进度条简单实例
2017/02/22 Javascript
ES6中Array.includes()函数的用法
2017/09/20 Javascript
本地搭建微信小程序服务器的实现方法
2017/10/27 Javascript
js中DOM事件绑定分析
2018/03/18 Javascript
vue如何将v-for中的表格导出来
2018/05/07 Javascript
dts文件中删除一个node或属性的操作方法
2018/08/05 Javascript
详解Webpack-dev-server的proxy用法
2018/09/08 Javascript
Vue 组件修改根实例的数据的方法
2019/04/02 Javascript
100行代码实现vue表单校验功能(小白自编)
2019/11/19 Javascript
Jquery Datatables的使用详解
2020/01/30 jQuery
JS如何生成随机验证码
2020/03/02 Javascript
基于p5.js 2D图像接口的扩展(交互实现)
2020/11/30 Javascript
[01:11:08]Winstrike vs NB 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
python正则表达式去掉数字中的逗号(python正则匹配逗号)
2013/12/25 Python
python单线程实现多个定时器示例
2014/03/30 Python
python基础教程之基本数据类型和变量声明介绍
2014/08/29 Python
基于Python socket的端口扫描程序实例代码
2018/02/09 Python
python实现快递价格查询系统
2020/03/03 Python
解决阿里云邮件发送不能使用25端口问题
2020/08/07 Python
优秀班干部事迹材料
2014/01/26 职场文书
办公室主任职责范本
2014/03/07 职场文书
村长贪污检举信
2014/04/04 职场文书
法定代表人资格证明书
2014/09/11 职场文书
selenium.webdriver中add_argument方法常用参数表
2021/04/08 Python
我们认为中短波广播场强仪的最佳组合
2022/04/05 无线电