amazeUI 复择框问题解决

简介: 2018年04月12日 这是官方github参考文档,各种坑,不好用,这让我想到了当时用 layUI 的1.0版本遇到的各种问题。 上菜: ```python <div class="am-u-sm-9">     <div class="checkbox-group" id="g_0">   .

2018年04月12日

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

180220_Vjkd_2893900.png

上菜:

<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)
两种方法都可以实现,用最简单的方法来写

目录
相关文章
|
4月前
【推荐】实现跟随鼠标移动的浮动提示框、气泡框、Tip效果
【推荐】实现跟随鼠标移动的浮动提示框、气泡框、Tip效果
|
9月前
|
编解码 前端开发 PHP
悬浮坐标解决方案:如何在图片获取xy鼠标位置和增加标注信息
悬浮坐标解决方案:如何在图片获取xy鼠标位置和增加标注信息
69 0
|
10月前
|
数据可视化
ggforce|绘制区域轮廓-区域放大-寻找你的“onepiece”
ggforce|绘制区域轮廓-区域放大-寻找你的“onepiece”
利用键盘左右键使图像左右移动,上下键使图像的两个纹理可见度比例上下调整
利用键盘左右键使图像左右移动,上下键使图像的两个纹理可见度比例上下调整
|
XML 人工智能 算法
【22】目标检测中锚框(anchor)的相关总结
【22】目标检测中锚框(anchor)的相关总结
223 0
【22】目标检测中锚框(anchor)的相关总结
|
XML 计算机视觉 数据格式
目标检测脚本 | 根据xml文件在原图上显示边界框并保存
目标检测脚本 | 根据xml文件在原图上显示边界框并保存
137 0
|
算法 API 计算机视觉
OpenCV 轮廓周围绘制矩形框和圆形框
OpenCV 轮廓周围绘制矩形框和圆形框
182 0
OpenCV 轮廓周围绘制矩形框和圆形框
|
存储
opencv3寻找最小包围矩形在图像中的应用-滚动条
1 #include 2 #include 3 #include 4 5 using namespace cv; 6 using namespace std; 7 8 int g_nMinThred = 128, g_nMaxThred = 255; 9 i...
1389 0

热门文章

最新文章