2018年04月12日

这是官方github参考文档,各种坑,不好用,这让我想到了当时用 layUI 的1.0版本遇到的各种问题。

上菜:

<div class="am-u-sm-9">
    <div class="checkbox-group" id="g_0">
        <div class="am-checkbox">
            <input id="p_0" type="checkbox" name="par" value="1">
            <label for="p_0"> 用户列表</label>
        </div>
        <div class="am-checkbox">
            <div class="am-checkbox">
                <label><input data-g="g_0" type="checkbox" name="chi" value="2"> 业务员</label>
            </div>
        </div>
        <div class="am-checkbox">
            <div class="am-checkbox">
                <label><input data-g="g_0" type="checkbox" name="chi" value="3"> 普通用户</label>
            </div>
        </div>
    </div>
    <div class="checkbox-group" id="g_1">
        <div class="am-checkbox">
            <input id="p_1" type="checkbox" name="par" value="4">
            <label for="p_1"> 系统管理</label>
        </div>
        <div class="am-checkbox">
            <div class="am-checkbox">
                <label><input data-g="g_1" type="checkbox" name="chi" value="5"> 管理员列表</label>
            </div>
        </div>
        <div class="am-checkbox">
            <div class="am-checkbox">
                <label><input data-g="g_1" type="checkbox" name="chi" value="6"> 角色列表</label>
            </div>
        </div>
        <div class="am-checkbox">
            <div class="am-checkbox">
                <label><input data-g="g_1" type="checkbox" name="chi" value="8"> 权限列表</label>
            </div>
        </div>
    </div>
</div>

上面的是动态生成的html
下面js代码
$(function(){

//父级选择框

$('input[name="par"]').change(function(){

if($(this).prop('checked') == true){

$(this).parent().parent().find('input').prop('checked',true);

}else{

$(this).parent().parent().find('input').prop('checked',false);

}

});

//子级选择框

$('input[name="chi"]').change(function(){

var param_a = $(this).attr('data-g');

var param_b = [];

var param_c = [];

var param_d,param_e;

//获取当前父级下面所有子集集合

$('#' + param_a + ' input[name="chi"]').each(function(){

var all = $(this);

param_c.push(all.val());

});

param_d = param_c.length;

//获取当前父级下面选中的子集集合

$('#' + param_a + ' input[name="chi"]:checked').each(function(){

var selected = $(this);

param_b.push(selected.val());

});

param_e = param_b.length;

if(param_d == param_e){

$(this).parent().parent().parent().parent().find('input[name="par"]').prop('checked',true);

}else{

$(this).parent().parent().parent().parent().find('input[name="par"]').prop('checked',false);

}

console.log('selected==    '+param_b);

console.log('all==    '+param_c);

});

});

第一种:重点来了,上面判断逻辑是:判断当前父级下的选中的子集集合长度是否等于当前父级下的子集集合长度。
param_d == param_e
为什么要判断数组长度而不是直接判断数组呢?
第二种:判断数组简单的办法如下,这种方法只能判断英文字母,不能带有数字,动态生成的html标签带有数字
JSON.stringify(param_c) === JSON.stringify(param_b)
两种方法都可以实现,用最简单的方法来写

amazeUI 复择框问题解决相关推荐

  1. [Silverlight]使用PagedCollectionView配合复选框实现动态筛选的解决方案

    在之前的文章中提到,PagedCollection提供了筛选(Filter)功能. 实际项目中我们往往有这样的需求 即通过复选框动态的筛选DataGird的相关项,比如上面截图所示例的筛选Gender ...

  2. 打印时候复选框勾选不见了_checkbox 选中未显示对号勾选的问题

    今天同事 让帮忙调试一个checkbox只选中一个的方法,代码如下: ID平台代码平台名称 选项2选项2选项3选项4 varEleInput=$("[name = ptcode]:check ...

  3. 个人总结1[检查复选框选择个数:]

    检查复选框选择个数: function checkednum(id) {  var s;  s=0;  for(i=0;i<document.selectform.keyVal.length;i ...

  4. vxe-table 使用setCheckboxRow方法选择 复选框时出现 父级节点没有半选

    在使用vxe-table 时 发现有个bug table.setCheckboxRow() // 设置行复选框选中 发现父级复选框 不会出现 半选状态,提 issues无果,决定自己二次开发解决问题, ...

  5. 复选框被选中但勾没出来

    checkbox标签已有checked=checked但是不显示勾选,查看图片:于是乎 就开始网上查找 ,解决方法 就是将 $("...").attr("checked& ...

  6. ExtJs中checkboxgroup复选框组件的显示问题

    checkboxgroup复选框组件容器,当时用属性   allowBlank:false  必须至少选择一项,否则给出提示 blankText ,出现如下问题: 如果一个没有选择的时候,给出提示,但 ...

  7. js校验复选框(多选按钮)是否被选中的方法

    js校验复选框是否被选中的方法 方法一:(使用下标进行标记) if ($("#checkbox-id")get(0).checked) {// do something } 方法二 ...

  8. MFC控件编程之复选框单选框分组框

    MFC控件编程之复选框单选框分组框 一丶分组框 分组框 英文叫做 GroubBox 添加了分组框主要就是分组.好看.不重点介绍 二丶单选框 英文: Raido Button 单选框需要注意的事项 1. ...

  9. 【一个诡异的问题】用饿了么的自定义主题之后发现表格顶部的复选框checkbox错位了

    上图(做图是原生的主题,有图是自定义的颜色主题)          仔细看才发现右侧的顶部那个复选框靠左了,百思不得其解,尝试了各种骚操作无果 于是拿着新的主题样式index.css和老的比对发现他多 ...

最新文章

  1. SAP QM 物料主数据QM视图里字段MARC-INSMK的更新
  2. [公告]博客园新服务器照片
  3. 列举Java开发者必不可少的9大编程网站
  4. 关于DNS区域查询,DNS字典爆破,以及查询文件问题
  5. 2015-2月的小程序们
  6. 【23】蔡高厅老师 - 高等数学下阅读笔记 - 重积分 - 直角坐标系下(下)23 - 27
  7. python des加密文件_Python DES加密解密方法 pyDes库 兼容中文
  8. 程序人生:女程序员的求职奋斗史
  9. Java中print、printf、println的区别(对原文进行缩减,截取对自己有用的)
  10. 【报告分享】万达文旅项目新媒体营销操作手册.pdf(附下载链接)
  11. 神舟战神G8-CA7NP怎么样?测评值得买吗?
  12. 命令提示符中的一些基本命令
  13. ORA-01119、ORA-27040的两种可能存在的错误
  14. CTF-SMB信息泄露【简单易懂】
  15. Python 多环境搭建方法
  16. oracle的账户无法注册表,oracle用户账号在哪注册表ORA-12514问题解决
  17. http中get/put/post区别
  18. JavaScript实现字符串翻转
  19. matlab里面的cov函数,如何强制Matlab /八度cov函数使用可选参数
  20. Python学习笔记---------廖雪峰(基础和函数)

热门文章

  1. 教你在Zabbix环境下快速升级nginx版本!
  2. layui button按钮点击导致页面重新刷新的解决方案
  3. 在多行中查找和替换vim中的字符串
  4. 在Java中编码为Base64
  5. 活动子项父项的复杂CSS选择器[重复]
  6. 在Vim中将DOS行尾转换为Linux行尾
  7. 如何才能给路由器恢复出厂设置
  8. 安卓颜色标签android
  9. RabbitMQ的工作模式Routing 路由,test测试代
  10. node创建新html页面,node创建服务器之展示html页面