关于layui实现按钮点击添加行的功能

news2024/11/25 9:58:33

关于layui实现按钮点击添加行的功能

实现效果

代码实现

<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" th:href="@{/plugin/layui/css/layui.css}">
    <link rel="stylesheet" th:href="@{/css/public/app-main.css}">
    <link rel="stylesheet" th:href="@{/css/app-page-layui.css}" />
    <style type="text/css">
        .model-title {
            display: inline-block;
        }

        .model-btn-group {
            display: inline-block;
            float: right;
            line-height: 42px;
            vertical-align: middle;
        }

        .layui-card-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
    </style>
    <style type="text/css">
        /*您可以将下列样式写入自己的样式表中*/
        .childBody {
            padding: 15px;
        }

        /*layui 元素样式改写*/
        .layui-btn-sm {
            line-height: normal;
            font-size: 12.5px;
        }

        .layui-btn-danger{
            line-height: normal;
            font-size: 12.5px;
            height: 30px;
        }

        .layui-table-cell .layui-input.layui-unselect {
            height: 30px;
            line-height: 30px;
        }

        /*设置 layui 表格中单元格内容溢出可见样式*/
        .table-overlay .layui-table-view, .table-overlay .layui-table-box,
        .table-overlay .layui-table-body {
            overflow: visible;
        }

        .table-overlay .layui-table-cell {
            height: auto;
            overflow: visible;
        }

        /*文本对齐方式*/
        .text-center {
            text-align: center;
        }
    </style>
</head>
<body>
<div>
    <div class="layui-card">
        <div class="layui-card-header">
            <div class="model-title">请求参数</div>
            <div class="model-btn-group">
                <button id="execute" type="button" class="layui-btn layui-btn-danger"
                        data-type="addParam" title="添加一行">
                    <i class="layui-icon layui-icon-ok-circle"></i> 执行命令
                </button>
                <button id="addParam" type="button" class="layui-btn layui-btn-sm"
                        data-type="addParam" title="添加一行">
                    <i class="layui-icon layui-icon-add-1"></i> 添加一行
                </button>
            </div>
        </div>
        <div class="layui-card-body">
            <div class="layui-card">
                <div class="layui-card-body layui-text">
                    <div id="tableRes" class="table-overlay">
                        <table id="paramTable" lay-filter="paramTable"
                               class="layui-hide"></table>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
<script th:src="@{/plugin/layui/layui.js}"></script>
<script th:src="@{/js/common.js}"></script>
<script th:src="@{/js/app/commandSetList.js}"></script>
<script th:src="@{/js/app/dataType.js}"></script>
<script th:inline="javascript">
    layui.use(['table','form', 'jquery'],function (){
        var table = layui.table;
        var form = layui.form;
        var $ = layui.jquery;
        var tableData=new Array();
        var param = {
            tempId: new Date().valueOf(),
            keyParam: '',
            valueParam:'',
        };
        tableData.push(param);

        //初始化表单
        table.render({
            elem:"#paramTable",
            id:'paramTable',
            data:tableData,
            page:false,
            loading:false,
            even:false,
            cols:[[
                {title:'序号',type:'numbers'},
                {field: 'keyParam' ,title:'参数名',edit:'text'},
                {field: 'valueParam',title:'参数值',edit:'text'},
                {field: 'tempId',title:'操作', align:'center', fixed:'right',templet:function (d){
                        return '<a class="layui-btn layui-btn-xs layui-btn-danger" style="height: 22px;" lay-event="del" lay-id="'+ d.tempId +'"><i class="layui-icon layui-icon-delete"></i>移除</a>';
                }},
            ]]
        })

        //添加按钮设置点击事件
        $("#addParam").click(function (){
            var oldData = table.cache["paramTable"];
            var newRow = {
                tempId: new Date().valueOf(),
                keyParam: '',
                valueParam:'',
            }
            oldData.push(newRow);
            table.reload('paramTable',{
                data:oldData
            });
        });


        //删除行
        table.on('tool(paramTable)',function (obj){
            var data = obj.data, event = obj.event, tr = obj.tr;
            switch (event) {
                case "del":
                    layer.confirm('真的删除吗?',function (index){
                        obj.del();
                        layer.close(index);
                        var oldData = table.cache["paramTable"];
                        for (var i=0;i<oldData.length;i++){
                            row = oldData[i];
                            if(!row || !row.tempId){
                                oldData.splice(i, 1);    //删除一项
                            }
                            continue;
                        }
                        table.reload('paramTable',{
                            data:oldData
                        });
                    });
            }
        });


        $("#execute").click(function (){
            var paramList = JSON.stringify(table.cache["paramTable"]);
            console.log(paramList);
        })
    });

</script>
</body>
</html>

注:想过的实现相当于在前端做一个无数据的table,之后对table进行相关的操作,

注意问题:在效果实现时,可能会存在table一直找不到的问题,注意查看,给table的数据格式是否正确,table是否真的被呈现出来。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/721192.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

帅气的头像-InsCode Stable Diffusion 美图活动一期

1.运行地址 Stable Diffusion 模型在线使用地址&#xff1a; https://inscode.csdn.net/inscode/Stable-Diffusion 界面截图&#xff1a; 2.模型版本及相关配置 模型&#xff1a;chilloutmix-Ni.safetensor [7234b76e42] 采样迭代步数&#xff08;steps&#xff09;: 30 采样…

QtDesigner的使用

QtDesigner的使用 1、快速入门2、布局管理 1、快速入门 主窗口 菜单栏、工具栏、状态栏 快捷预览方式&#xff0c;工具箱 对象查看器 属性编辑器 英文名作用objectName控件对象名称geometry相对坐标系sizePolicy控件大小策略minnimumSize最小宽度、高度maximumSize最大宽度…

基于jsp+Servlet+mysql学生信息管理系统V2.0

基于jspServletmysql学生信息管理系统V2.0 一、系统介绍二、功能展示1.项目骨架2.数据库表3.项目内容4.登陆界面5.学生-学生信息6、学生-修改密码7、管理员-学生管理8、管理员-添加学生9.管理员-修改学生信息10.管理员-班级信息11.管理员-教师信息 四、其它1.其他系统实现五.获…

旅游卡系统旅行社小程序APP

旅游业的不断发展&#xff0c;旅游卡系统、旅行社小程序APP等数字化工具已经成为了旅行社提升业务效率、提高客户体验的重要手段。下面&#xff0c;我们将为您介绍旅游卡系统旅行社小程序APP的相关内容。 一、旅游卡系统 旅游卡系统是一种将旅游门票、优惠券等资源整合…

实时包裹信息同步:WebSocket 在 Mendix 中的应用

场景介绍 在现代物流中&#xff0c;能够实时跟踪包裹信息&#xff0c;尤其是包裹重量&#xff0c;是非常重要的。在这种场景中&#xff0c;我们可以使用称重设备获取包裹的信息&#xff0c;然后实时将这些信息同步给 Mendix 开发的 App&#xff0c;并在 App 的页面上实时显示包…

获取java对象被更新的属性和值

业务场景 更新User信息后&#xff0c;需要收集哪些字段的哪些值被更新了。 思路 比较originUser和newUser&#xff0c;收集值不同的属性以及变化前后的值。 代码实现 public static Map<String, Map<String, Object>> getChange(Object originObject, Object ne…

Java 9 - 模块化系统

定义要导出的模块 package com.lfsun.java9study.mypackage;public class MyClass {public static void sayHello() {System.out.println("Hello from com.lfsun.java9study.mypackage!");}public static void main(String[] args) {System.out.println("test&…

【Linux】LVS负载均衡群集 DR模式

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 LVS负载均衡群集 DR模式 数据包流向分析DR 模式的特点LVS-DR中的ARP问题VIP地址相同导致响应冲突返回报文时源地址使用VIP&#xff0c;导致网关设备的ARP缓存表紊乱 DR模式 L…

Pycharm配置解释器(interpreter)

关于pycharm编译器的解释器&#xff0c;网友朋友的分享 Pycharm配置&#xff08;1&#xff09;——解释器&#xff08;interpreter&#xff09; 详细了解PyCharm支持的4种Python Interpreter和配置方法 对大多数人而言就只需要 分清虚拟解释器和系统解释器&#xff0c;使用虚拟…

关闭Win10的预览窗口

关闭Win10的预览窗口 每次拖拽文件都显示那个黑边的模型一样的东西&#xff0c;通过上面可以关闭该功能。

MBD开发 STM32 外部仿真

要接一个串口&#xff0c;用来设备和simulink的通信 烧录即可 烧录时选择串口

.360勒索病毒的加密数据怎么处理?|.360勒索病毒数据解密恢复

.360勒索病毒是一种恶意软件&#xff0c;它对用户的计算机文件进行加密&#xff0c;并要求支付赎金才能解密恢复数据。这种勒索病毒以其广泛传播和严重破坏性而闻名&#xff0c;给个人用户和企业带来了巨大的困扰和损失。 一家中型制造企业&#xff0c;名为XYZ制造有限公司&…

用科技智造新未来!在线开发平台强力助推数字化发展

在科技智造新时代&#xff0c;科技的力量是无处不见的。运用科技可以创造美好的生活&#xff0c;可以实现数字化发展&#xff0c;帮助企业实现流程化管理。在线开发平台将科技元素注入到平台中&#xff0c;将科技与办公需求相连接&#xff0c;创造高效率办公及流程化发展。 1…

# hub.docker.com镜像加速站点仓库的搭建与使用

hub.docker.com镜像加速站点仓库的搭建与使用 文章目录 hub.docker.com镜像加速站点仓库的搭建与使用1 镜像仓库搭建1.1 创建目录及docker-compose.yaml1.2 如果要开启密码验证&#xff0c;需要先生成密码1.3 启动服务 2 用户端使用3 最后 前段时间由于拉取docker镜像&#xff…

初出茅庐的小李博客之链表知识2

链表知识点2 通过malloc函数动态创建节点&#xff1a; #include <stdio.h> #include <stdlib.h>typedef struct List Node_t;struct List {/*数据区域有两个变量*/int a;float b;/*地址区域有一个指针*/Node_t* pNext; };Node_t Head_Node; //表头变量 Node_t Bo…

ChatGPT与Excel结合_编写VBA宏

先来解释下什么是Excel vba宏 ⭐Excel VBA宏&#xff08;Visual Basic for Applications&#xff09;是一种用于在Microsoft Excel中自动化和扩展功能的编程语言。VBA允许用户编写自定义的脚本或宏&#xff0c;以便通过执行一系列指令来自动完成特定任务。 使用Excel VBA宏&a…

分布式——监控平台zabbix的认识与搭建

作为一个运维&#xff0c;需要会使用监控系统查看服务器系统性能、应用服务状态和网站流量指标等&#xff0c;利用监控系统的数据去了解网站上线发布的结果和健康状态。 利用一个优秀的监控软件&#xff0c;我们可以: ●通过一个友好的界面进行浏览整个网站所有的服务器状态 ●…

自学软件测试

自学软件测试体系&#xff08;1&#xff09; 前言&#xff1a;很多小伙伴想要自学软件测试课程走上测试工程师道路&#xff0c;基于此目的给出想要自学软件测试的一些小伙伴一些学习的方向。软件测试工程师的职业发展方向包括功能测试&#xff0c;自动化测试&#xff0c;专项测…

【Ubuntu学习MySQL——报错 ERROR 2002 (HY000)】

问题&#xff1a; 报错含义&#xff1a; 根据上面的报错&#xff0c;意思是说mysql想使用/var/run/mysqld/mysqld.scok文件&#xff0c;但是无法连接&#xff0c;接下来我们来看看这个文件是否存在 1.查看所有的sock文件 sudo find / -type s 根据上述命令所得出的结果可以知…

【REST规范】JAX-RS有哪些实现

JAX-RS是JAVA EE6 引入的一个新技术。 JAX-RS即Java API for RESTful Web Services&#xff0c;是一个Java 编程语言的应用程序接口&#xff0c;支持按照表述性状态转移&#xff08;REST&#xff09;架构风格创建Web服务。JAX-RS使用了Java SE5引入的Java注解来简化Web服务的客…