记录一次layui的启停用监听事件

LayUI switch 开关监听 获取属性值、更改状态的方法 今天小编就为大家分享一篇LayUI switch 开关监听 获取属性值、更改状态的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 立即下载
1.前端代码
layui.use(['form', 'table','laypage'], function(){
        var table = layui.table;
        var form =layui.form;
        var laypage = layui.laypage;
        table.render({
            elem: '#tb'
            ,url:'personManage/userManage'
            ,toolbar: '#toolbarDemo' //开启头部工具栏,并为其绑定左侧模板
            , limit: 20
            , limits: [20, 40, 60]
            ,defaultToolbar: ['filter', 'exports', 'print', { //自定义头部工具栏右侧图标。如无需自定义,去除该参数即可
                title: '提示'
                ,layEvent: 'LAYTABLE_TIPS'
                ,icon: 'layui-icon-tips'
            }]
            ,title: '用户数据表'
            ,parseData:function (res) {
                console.log(res)
                console.log(res.total)
                return{
                    "code":res.code,
                    "msg": res.msg,
                    "count": res.total,
                    data: res.data
                }
            },count:'count'
            ,cols: [[
                {type: 'checkbox', fixed: 'left'},
                {field: 'id', title: '序号', width:'6%', fixed: 'left', align:'center',templet: function(res){
                        return '<div style="text-align: center">'+ res.LAY_INDEX+'</div>';
                    }}
                ,{field:'userid', title:'用户名', width:'10%',align:'center', fixed: 'left', /*unresize: true,*/ sort: true,templet: function(res){
                        console.log("数据表格内res:-------------->"+res.userid)
                        if(res.userid==null){
                            return "";
                        }else {
                            return '<div style="text-align: center">'+res.userid+'</div>'
                        }
                    }}
                ,{field:'username', title:'姓名',align:'center', width:'10%', edit: 'text',templet: function(res){
                        if(res.username==null){
                            return "";
                        }else {
                            return '<div style="text-align: center">'+res.username+'</div>'
                        }
                    }}
                ,{field:'userpwd', title:'密码',align:'center', width:'10%', edit: 'text',templet: function(res){
                        if(res.userpwd==null){
                            return "";
                        }else {
                            return '<div style="text-align: center">'+res.userpwd+'</div>'
                        }
                    }}
                ,{field:'sex', title:'性别',align:'center', width:'10%', edit: 'text',templet: function(res){
                        if(res.sex==null){
                            return "";
                        }else {
                            return '<div style="text-align: center">'+res.sex+'</div>'
                        }
                    }}
                ,{field:'userdept', title:'所在部门',align:'center', width:'10%', templet: function(res){
                        if(res.userdept==null){
                            return "";
                        }else{
                            return '<div style="text-align: center">'+res.userdept+'</div>'
                        }
                    }}
                ,{field:'userrole', title:'所属角色',align:'center', width:'10%', templet: function(res){
                        if(res.userrole==null){
                            return "";
                        }else{
                            return '<div style="text-align: center">'+res.userrole+'</div>'
                        }

                    }}
                ,{field:'usertype', title:'用户类型',align:'center', width:'10%', sort: true,templet: function(res){
                        if(res.usertype==null){
                            return "";
                        }else if(res.usertype =='0'){
                            return '<div style="text-align: center">'+"普通用户"+'</div>'
                        }else if(res.usertype =='1'){
                            return '<div style="text-align: center">'+"系统管理员"+'</div>'
                        }else if(res.usertype =='2'){
                            return '<div style="text-align: center">'+"超级管理员"+'</div>'
                        }
                    }} 
                ,{field:'userstatus', title:'用户状态',align:'center', width:'10%', sort: true,templet: function(res){
                        let menuId = res.userstatus;
                        let userid = res.userid;
                        if(res.userstatus==null){
                            return "";
                        }else if(res.userstatus =='1'){
                            return '<div style="text-align: center">' +"   <input type='checkbox' menuId = '" + menuId +
                                "' userid = '" + userid + "' lay-filter='userstatus' lay-skin='switch' lay-text='启用|禁用' checked>"+'</div>'
                        }else if(res.userstatus =='0'){
                            return '<div style=\"text-align: center\">'+"   <input type='checkbox'  menuId = '" + menuId +
                                "' userid = '" + userid + "' lay-filter='userstatus' lay-skin='switch' lay-text='启用|禁用'>"+'</div>'
                        }
                    }}
                ,{fixed: 'right', title:'操作',align:'center', toolbar: '#barDemo', width:'10%',templet: function(res){
                        return '<div style="text-align: center">'+res.right+'</div>'
                    }}
            ]]
            ,id:'testReload'
            ,page: {
                layout: ['prev', 'page', 'next','limit','count'] //自定义分页布局
                ,groups: 3 //只显示 3 个连续页码
                ,first: '首页' //首页
                ,prev: '上一页'
                ,next: '下一页'
                ,last: '尾页' //尾页
                ,limit:10
                ,limits:[10,20,30]
            }
            ,request: {
                pageName: 'page' // 页码的参数名称,默认:page
                , limitName: 'size' //每页数据量的参数名,默认:limit
            },
        });
        

在这里插入图片描述

其实只需要关注这部分代码即可,前面部分为页面数据的获取
在这里插入图片描述
此处的lay-filter 的值为switch开关监听的值,menuId传入的则是当前数据状态的值,传入userid则是为了判断当前数据状态是属于那个用户

<%--监听启停用按钮--%>
<script>
    layui.use(['form', 'jquery', 'layer'], function () {
        var form = layui.form;
        var jquery = layui.jquery;
        var layer = layui.layer;
        //监听开关事件
        form.on('switch(userstatus)', function (data) {
            var contexts;
            var x = data.elem.checked;//判断开关状态
            //拿到当前行的userstatus的值,menuId是在生成数据表格template时获取到的当前行的状态id
            var status = data.elem.attributes['menuId'].nodeValue;
            var userid = data.elem.attributes['userid'].nodeValue;
            //定义当前状态位flag "0"为禁用,"1"为启用
            var flag = '0';
            if (x==true) {
            //表明当前状态为禁用,在回调函数中对当前状态进行更新操作即可。
                flag = '0';
                contexts = "你确定要启用么";
            } else {
            //表明当前状态为启用,在回调函数中对当前状态进行更新操作即可。
                flag = '1';
                contexts = "你确定要禁用么";
            }
            layer.open({
                content: contexts
                , btn: ['确定', '取消']
                , yes: function (index, layero) {
                    data.elem.checked = x;
                    debugger
                    $.ajax({
                        type:'POST',
                        url:'personManage/judgeSwitch',
                        data:{'userstatus':status,'userid':userid,'flag':flag},
                        dataType:'json',
                        success:function(data){
                            if(data!=null){
                                if(data.switch_res='1'){
                                    if(data.message ='1'){
                                        if(flag='0'){
                                            flag='1'
                                        }else {
                                            flag='0';
                                        }
                                        layer.msg("启用成功!");
                                    }else{
                                        if(flag='0'){
                                            flag='1'
                                        }else {
                                            flag='0';
                                        }
                                        layer.msg("停用成功!");
                                    }

                                }

                            }
                        },
                        error:function(res){
                            console.log("err_data:------->"+res)
                            layer.msg("网络错误");
                        }
                    });

                    form.render();
                    layer.close(index);
                    //按钮【按钮一】的回调
                }
                , btn2: function (index, layero) {
                    //按钮【按钮二】的回调
                    data.elem.checked = !x;
                    form.render();
                    layer.close(index);
                    //return false 开启该代码可禁止点击该按钮关闭
                }
                , cancel: function () {
                    //右上角关闭回调
                    data.elem.checked = !x;
                    form.render();
                    //return false 开启该代码可禁止点击该按钮关闭
                }
            });
            return false;
        });
    });

</script>

2.后端逻辑
controller

/**
     *  开关监听按钮点击更改数据库状态事件
     */
    @RequestMapping(value = "/judgeSwitch",method= RequestMethod.POST)
    @ResponseBody
    public Map<String,String> judgeSwitch(String userstatus,String userid,String flag,HttpSession session) {
        //判断开关状态,根据开关启停用更改数据状态userstatus值
        if(flag.equals("1")){
            userstatus="0";
        }else if(flag.equals("0")){
            userstatus="1";
        }
        boolean bl= loginService.judgeSwitch(userid,userstatus,flag);
        Map<String,String> map =new HashMap<>();
        if(bl){
            map.put("switch_res","1");
            if(flag.equals('1')){
                map.put("message","0");
            }else {
                map.put("message","1");
            }
        }else {
            map.put("switch_res","0");
        }
        return   map;
    }

dao:

 // 根据启停用按钮状态更改数据库fs_admin userstatus的值 flag:标识当前启停用状态根据此字段判断是停用还是启用
    boolean judgeSwitch(@Param("userid")String userid,@Param("userstatus")String userstatus,
                        @Param("flag") String flag);

service:

// 根据启停用按钮状态更改数据库fs_admin userstatus的值 flag:标识当前启停用状态根据此字段判断是停用还是启用
    public boolean judgeSwitch(String userid, String userstatus, String flag);
 @Override
    public boolean judgeSwitch(String userid, String userstatus, String flag) {
        return loginDao.judgeSwitch(userid,userstatus,flag);
    }

然后在页面上点击启停用按钮后,可以对应改变数据库的值,一个简单的启停用按钮就做完了。

欢迎各位大佬指正建议,觉得文章可以的话不妨点点关注哦!

告别电压瓶颈:手把手教你用SVPWM过调制算法提升电机驱动性能(附Simulink仿真) 本文详细介绍了如何利用SVPWM过调制算法提升电机驱动性能,解决电动汽车高速运行时的电压瓶颈问题。通过过调制I区和II区的算法实现细节,包括相角补偿与跳变控制,结合Simulink仿真演示,帮助工程师和研究者平衡电压增益与谐波失真,提升系统效率与动态响应。 阅读详情

相关推荐

用Blender给ArduPilot无人船编队设计灯光秀:从建模到飞行的保姆级教程

本文详细介绍了如何利用Blender和ArduPilot为无人船编队设计灯光秀的全流程技术方案。从3D动画设计、坐标转换、数据导出到ArduPilot飞控配置和灯光控制,提供了一套完整的保姆级教程,帮助开发者实现水面灯光编队表演。

weixin_29213525的博客 386

Layui - switch 开关监听

UI: html代码: <div class="layui-form-item"> <label class="layui-form-label layui-form-required">发送模板消息:<br/>(公众号)</label> <div class="layui-input-block"> <input type="checkbox" name="isSendWechatTemp" lay

。 20万+

Stable Diffusion跑图总爆显存?别急着换显卡,试试这个PYTORCH_CUDA_ALLOC_CONF参数调优

本文深入解析了Stable Diffusion运行中常见的显存不足问题,特别是由显存碎片化导致的假性OOM现象。通过详细讲解PYTORCH_CUDA_ALLOC_CONF参数中的max_split_size_mb设置技巧,提供了一套完整的显存优化方案,帮助用户在无需升级硬件的情况下显著提升AI绘画的稳定性与效率。

weixin_42524100的博客 346

layui 事件监听触发

1:监听select 改变 <!-- 不用form 用div也可以 --> <form class="layui-form"> <div class="layui-form-item"> <label class="layui-form-label">下拉选择框</label> &lt...

weixin_33804990的博客 3805

村田电感模型选型指南:.s2p和SPICE netlist在ADS中的表现差异

本文深度解析了村田电感在ADS仿真中.s2p与SPICE netlist两种模型的表现差异。通过对比模型本质、仿真设置及高低频段精度,揭示了.s2p文件基于实测插值而SPICE netlist基于等效电路外推的特性。文章提供了明确的选型策略,帮助工程师根据项目频段、仿真类型和精度需求,在射频与微波电路设计中做出最优模型选择。

k9l0m1的博客 451

Codex 自定义模型操作指南:CLI 与桌面客户端双端实操

检查版本 codex --version # 预期输出类似:codex-cli 0.133.0-alpha.1 # 如未安装 npm install -g @openai/codex假设你要接入DeepSeek,在# 临时设置(当前终端会话有效)export DEEPSEEK_API_KEY="sk-你的 DeepSeek API Key"# 永久设置(推荐,写入 shell 配置)

篮球界最会写bug的人;程序猿中打球最菜的人。 453

Layui 新增表单demo 音频+图片

样式 代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <title>....</title> <link rel="stylesheet" rev="stylesh.

阿……莫西林杀菌室 2157

海康VisionMaster与西门子PLC1200进行S7通信

通信是连通算法平台和外部设备的重要渠道,在海康VisionMaster算法平台中既支持外部数据的读入也支持数据的写出,当通信构建起来以后既可以把软件处理结果发送给外界,又可以通过外界发送字符来触发相机拍照或者软件运行。 本文以西门子PLC1200作为外部设备为例,讲解海康VisionMaster与西门子PLC1200进行S7通信。......

haier123888的博客 1万+

Layui事件监听

layui监听事件

weixin_57785089的博客 3111

Python数据可视化 Pyecharts 制作 Map 地图

大家好,我是Mr数据杨。想象一下,作为一名军师,如诸葛亮或郭嘉,'Map’就如同那战争的沙盘,兵马行动的轨迹,都需要准确的地图作为基础。‘基本设置’,就如同摆设这张战争沙盘,规定棋子的起始位置。‘数据配置选项’和’地图数据项’,就好比是军师们手中的情报,了解各路诸侯的兵力、粮草、地形等重要信息,以便于他们更好地布局。‘Demo’则代表着练兵之地,军师们可以在此基于已有数据,试验各种战术。

Mr数据杨 4万+

【从零开始学习 UVM】1.1、UVM 概述 —— Preface

【从零开始学习 UVM】1.1、UVM 概述 —— Preface

努力,加油每一天鸭~ 824

layui tab关闭前实现监听

layui-v2.5.7 需求 layui tab 删除的时候判断是否可以执行删除 解决思路 添加新tab 的时候: 解绑layui 自动生成的 tab 删除事件 绑定自定义的 这个tab的删除事件 自定义事件内完成监听,满足条件则调用删除tab 代码如下 /* * 添加 tab */ function tabAdd() { var tabId = new Date().getTime() layui.element.tabAdd('formTab', { ...

qq_42249552的博客 2175

【存储原理】IO超时处理 块层block-scsi层之间

【存储原理】IO超时处理 块层block-scsi层之间

sinat_37817094的博客 1023

关于LayUI中表格行数据监听记录

关于LayUI中表格行数据监听记录table.on("控件"(“表格的绑定名字”)) table.on(“控件”(“表格的绑定名字”)) 这里控件就是row,点击表格对应行,获取对应数据 table.on('row(useruv)', function (obj) { //注:tool是工具条事件名,test是table原始容器的属性 lay-filter="对应的值" var data = obj.data; //获得当前行数据

l3098815201的博客 2128

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

【前端】Layui的表格常用功能,表单提交事件,表格下拉按钮点击事件,表格外的按钮点击事件

最近在维护老系统,尽量使用过layui,但是时间久了,总会忘记一些方法的使用。 因此通过本篇文章大概记录常用的功能方法,比如,表单提交事件,表格下拉按钮点击事件,表格外的按钮点击事件等

小5聊的博客 9266

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

layui中table监听单元格_关于LayUI中表格行数据监听记录

关于LayUI中表格行数据监听记录table.on("控件"(“表格的绑定名字”))对于表格中自定义按钮监听toolbar配置table.on(“控件”(“表格的绑定名字”))这里控件就是row,点击表格对应行,获取对应数据table.on('row(useruv)', function (obj) {//注:tool是工具条事件名,test是table原始容器的属性 lay-filter="对应...

weixin_34928063的博客 2179

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

layui回车确定事件

function remove(id) { layer.confirm('确定要删除选中的记录?', { btn : [ '确定', '取消' ], success:function(){ this.enterEsc = function (event) { if (event.keyCode === 13) { $(".layui-layer-btn0").click(); return false; //阻止系统默认回车事件 }else if(even

q1519187064的博客 1529

记录Layui-select中的搜索下拉框lay-search相关的使用(对于初次使用是真的难顶)

对于一个后端开发人员来说,常用的easyUI,miniUI,bootstrap,layUI等前端整合式的UI框架能很好的提高页面美观程度以及开发效率 我个人在开发中,使用过miniUI,bootstrap,layUI,其中miniUI是在公司开发时公司要求学习使用的,个人写东西还是偏重于layUI和bootstrap,毕竟看着漂亮点. 本次记录的...

Zachariahs的博客 4万+

layui表格分页 记录勾选

layui 分页之后没有记录之前勾选项的功能 , 自己写了一个 , 主要点就是表格的done 函数 ,每次渲染完成之后做表格勾选操作。然后需要一个全局变量记录所有已经勾选的项 。下面是自己的代码 。 首先,监听表格的复选框点击事件 , 将单选或全选全部记录下来 var checkArray = new Array(); // 当前页数据 var currentArray ;...

Z17839192969的博客 2090

Layui表格行点击事件监听

在 Layui 中监听表格行点击事件,可以通过 table.render 方法渲染表格,并使用 table.on('row(filter)', function(obj){...}) 监听行点击事件。具体步骤包括:首先初始化表格并设置数据源和列定义,然后通过 table.on 方法绑定行点击事件,回调函数中的 obj.data 可以获取当前行的数据。这种方式不仅实现了行点击的监听,还能方便地获取行数据以进行进一步操作,如显示详情或编辑记录。

yhj198927的博客 637

layui表格 监听鼠标右键的心得

之前看过一篇文章 ,在这里 我把他贴出来 原文链接:https://blog.youkuaiyun.com/DengZY926/article/details/82011955 layui.use([‘table’, ‘layer’], function () { var table = layui.table, layer = layui.layer; table.render({ elem: ‘#fili...

weixin_39091232的博客 4218

Layui表格如何监听单元格编辑开始(进入编辑状态)事件

用 on('click', '.layui-table-body td[lay-event="*"]', ...) 拦截双击行为Layui 表格的单元格编辑靠的是双击触发,底层会往对应 td 里插入 input 或 select。// 非数据列,比如操作列 // 此时可确认用户正要编辑该单元格 console.log('开始编辑:行', index, '列字段', field);

m0_71643007的博客 205

聊聊 Layui监听单选框,下拉框,复选框等代码写法

最近在做Coral项目的时候遇到这样一个问题:Layui中怎么动态监听radio单选框的事件,下面先来看一段代码: <html> ... <form> <input type="radio" name="type" value="1" title="菜单" checked> <input type="radio"...

九哥乌托邦 943

Layui表格行工具事件与数据回填

开发工具与关键技术:MVC、C#、Layui、jQuery 作者:张俊辉 撰写时间:2019年05月07日 使用Layui数据表格实现行工具事件与Layui表单弹框与数据回填具体步骤如下: 步骤一:布置行工具栏样式与数据表格初始化,代码如下: <script type="text/html" id="barDemo2"> <a class="layui-btn...

奈何丶一梦的博客 1734

第一次记录遇到的问题——layui的坑坑

遇到的问题是使用layui前端框架时checkbox的事件怎么获取不到,查了一些资料之后知道了在layui中使用一些控件时需要和layui搭配使用。 一、Layui的checkbox 遇到的问题是checkbox的事件不好用 layui.use([ 'form', 'layer', 'jquery' ], function() { $ = layui.jquery; var layer = layui.layer, form = layui.form; //监听多选框点击事件 通过lay

weixin_44742180的博客 665

日常记录:关于layui监听不到radio的点击

项目场景: 首先附上官方的文档: 表单模块文档 - Layuihttps://layui.11dz.cn/doc/modules/form.html#onradio //官方HTML代码: <input type="radio" name="sex" value="nan" title="男"> <input type="radio" name="sex" value="nv" title="女" checked> <input

m0_52773173的博客 1147
上一篇: 记录一次 ssm下 pagehelper +layui
下一篇: 记录一次layui头工具栏删除后页面重新加载
倾听心跳的频率灬
博客等级 码龄8年 13粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值