当layer动态加载无法勾选 多个复选框时

在这里插入图片描述

    <div class="layui-form-item layui-form-text">
    添加 layui-form-text 
===================================================
<%@page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
<%@ include file="/jsp/common.jsp" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <base href="<%=basePath%>">
    <meta charset="utf-8">
    <title>用户管理</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta http-equiv="description" content="This is my page">
    <link rel="stylesheet" type="text/css" href="<%=basePath %>js/layui-v2.5.5/layui/css/layui.css" charset="utf-8">
</head>
<body>
<div id="user-tbl-layer" style="padding: 20px">
    <form id="user-tbl-form" class="layui-form layui-form-pane" >
        <input type="hidden" id="_user_id" name="_user_id" value="${_user_id }"/>
        <div class="layui-form-item layui-form-text">
            <label class="layui-form-label">角色名称</label>
            <div class="layui-input-block" style="height: 30px">
                <c:forEach items="${list}" var="acc">
                    <input type="checkbox" name="id"
                           <c:if test="${acc._flag == true}">checked="checked"</c:if>
                           value="${acc._id }" lay-skin="primary" title="${acc._name }"/>
                    <div  class="layui-unselect layui-form-checkbox" lay-skin="primary">
                        <span>${acc._name }</span>
                        <i class="layui-icon layui-icon-ok"></i></div>
                </c:forEach>
            </div>
        </div>
        <div class="layui-form-item">
            <div class="layui-input-block" >
                    <button class="layui-btn" lay-submit lay-filter="add-user-form-submit"  style="margin-top:100px;">确定</button>
            </div>
        </div>
    </form>
</div>
<script type="text/javascript" src="<%=basePath %>js/layui-v2.5.5/layui/layui.js" charset="utf-8"></script>
<script type="text/javascript">
    layui.use([ 'jquery', 'table', 'layer', 'form' ], function() {
        // 加载layui模块,使用其推荐的【预先加载】方式,详见官网【模块规范】一节
        var $ = layui.$;
        var table = layui.table;
        var layer = layui.layer;
        var form = layui.form;
        var table = layui.table;
        form.on('submit(add-user-form-submit)', function(data) {
            var i = 0;
            $.each($('input:checkbox:checked'),function(){
                if(i == 0){
                    ids = $(this).val();
                }else{
                    ids += ","+$(this).val();
                }
                i++;
            });
            data.field.id = ids;
            $.ajax({
                url : basePath + 'user/userSetRole.do',
                type : "POST",
                data : data.field,
                async:false,
                dataType : 'json',
                success : function(result) {
                    if (result.success) {
                        var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
                        parent.layer.close(index); //再执行关闭
                        parent.layui.table.reload('user-tbl')
                    } else {
                        layer.msg(result.msg);
                    }
                },
                error : function() {
                    console.log("ajax error");
                }
            });
            // 阻止表单跳转
            return false;
        });

    })
</script>
</body>
</html>
要实现树形复选框,可以使用以下步骤: 1. 创建一个树形结构的视图,用于显示所有可选的图层。 2. 为每个图层创建一个复选框,并将其与图层相关联。 3. 当用户勾选或取消勾选复选框,通过事件处理程序更新图层状态,并在地图上显示或隐藏相应的图层。 以下是一个示例代码,展示如何创建树形复选框: ```html <div id="layerTree"></div> <script> // 图层列表 const layers = [ { id: 1, name: '图层1', visible: true }, { id: 2, name: '图层2', visible: false }, { id: 3, name: '图层3', visible: true }, { id: 4, name: '图层4', visible: true }, ]; // 创建树形复选框 function createLayerTree() { const tree = document.getElementById('layerTree'); layers.forEach((layer) => { const node = document.createElement('div'); const checkbox = document.createElement('input'); checkbox.type = 'checkbox'; checkbox.checked = layer.visible; checkbox.addEventListener('change', () => { layer.visible = checkbox.checked; updateLayerVisibility(); }); node.appendChild(checkbox); const label = document.createElement('label'); label.innerText = layer.name; node.appendChild(label); tree.appendChild(node); }); } // 更新图层可见性 function updateLayerVisibility() { layers.forEach((layer) => { // 根据图层的 visible 属性来显示或隐藏相应的图层 if (layer.visible) { // 显示图层 } else { // 隐藏图层 } }); } createLayerTree(); updateLayerVisibility(); </script> ``` 在这个示例中,我们首先创建了一个包含图层信息的数组,然后创建了一个名为 `createLayerTree` 的函数,用于创建树形复选框。在创建每个节点,我们附加了一个复选框和一个标签,并将复选框与图层的可见性相关联。当复选框的状态改变,我们更新了相应的图层可见性,并调用 `updateLayerVisibility` 函数来显示或隐藏相应的图层。 这个示例代码仅提供了一个基本的实现思路,你可以根据自己的需求进行修改和定制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值