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中获取元素的几种方式小结
Jul 05 Javascript
js前台判断开始时间是否小于结束时间
Feb 23 Javascript
javascript获取选中的文本的方法代码
Oct 30 Javascript
node.js中Socket.IO的进阶使用技巧
Nov 04 Javascript
扒一扒JavaScript 预解释
Jan 28 Javascript
js运动动画的八个知识点
Mar 12 Javascript
Bootstrap 组件之按钮(二)
May 11 Javascript
Vue.js中extend选项和delimiters选项的比较
Jul 17 Javascript
JS中getElementsByClassName与classList兼容性问题解决方案分析
Aug 07 Javascript
ElementUI中el-tree节点的操作的实现
Feb 27 Javascript
Js on及addEventListener原理用法区别解析
Jul 11 Javascript
js实现缓动动画
Nov 25 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中ob_start()函数的用法
2013/06/24 PHP
PHP获取youku视频真实flv文件地址的方法
2014/12/23 PHP
php+redis在实际项目中HTTP 500: Internal Server Error故障排除
2017/02/05 PHP
PHP使用Session实现上传进度功能详解
2019/08/06 PHP
浅谈JavaScript中定义变量时有无var声明的区别
2014/08/18 Javascript
深入理解JavaScript系列(26):设计模式之构造函数模式详解
2015/03/03 Javascript
js实现简单的左右两边固定广告效果实例
2015/04/10 Javascript
jQuery实现html表格动态添加新行的方法
2015/05/28 Javascript
AngualrJS中的Directive制作一个菜单
2016/01/26 Javascript
Node.js的Express框架使用上手指南
2016/03/12 Javascript
Google 地图事件实例讲解
2016/08/06 Javascript
微信小程序 picker 组件详解及简单实例
2017/01/10 Javascript
Javarscript中模块(module)、加载(load)与捆绑(bundle)详解
2017/05/28 Javascript
vue中如何去掉空格的方法实现
2018/11/09 Javascript
Js on及addEventListener原理用法区别解析
2020/07/11 Javascript
jQuery 添加元素和删除元素的方法
2020/07/15 jQuery
使用Django Form解决表单数据无法动态刷新的两种方法
2017/07/14 Python
Python中join函数简单代码示例
2018/01/09 Python
Python简单实现两个任意字符串乘积的方法示例
2018/04/12 Python
python实现超简单的视频对象提取功能
2018/06/04 Python
浅谈python之新式类
2018/08/12 Python
Python实现京东秒杀功能代码
2019/05/16 Python
python3.5 cv2 获取视频特定帧生成jpg图片
2019/08/28 Python
基于python cut和qcut的用法及区别详解
2019/11/22 Python
Python使用Socket实现简单聊天程序
2020/02/28 Python
Python爬取阿拉丁统计信息过程图解
2020/05/12 Python
CSS3 分类菜单效果
2019/05/27 HTML / CSS
高清安全摄像头系统:Lorex Technology
2018/07/20 全球购物
加大码胸罩、内裤和服装:Just My Size
2019/03/21 全球购物
文明礼仪事迹材料
2014/01/09 职场文书
竞聘演讲稿范文
2014/01/12 职场文书
林肯就职演讲稿
2014/05/19 职场文书
领导班子民主生活会整改措施(工商局)
2014/09/21 职场文书
党员个人承诺书
2015/04/27 职场文书
行为习惯主题班会
2015/08/14 职场文书
中秋节作文(五年级)之关于月亮
2019/09/11 职场文书