layui 树形组件下拉框

         采用 layui 树形组件,版本:V2.6.8。只需要更新layui版本,不需要下载tableSelect。

        原作者博客:https://blog.csdn.net/m0_67402588/article/details/123526860。

         从 官网 更新日志可以看到,树形组件在2.5.7版本还在更新,且2.4.X版本这个功能还未增加,直接下载最新版就不会出现不必要的错误啦。

效果展示:


目录

一、引入css、js

二、js

 需要的数据格式示范:

 js代码:

三、下拉框回显以及禁用


一、引入css、js

        样式部分可以自己调整。

<link rel="stylesheet" type="text/css" href="../../plugins/layui2.6.8/css/layui.css" />
<style type="text/css">.layui-form-select dl { padding: 0; }.treeSelect.layui-form-select dl dd:hover{background-color:#fff;}.treeSelect.layui-form-select dl dd, .layui-form-select dl dt{padding-bottom: 10px;}
</style><script src="../../plugins/layui2.6.8/layui.js" type="text/javascript" charset="utf-8"></script><div class="layui-form-item"><div class="layui-inline" style="margin-right: 0px;"><label class="layui-form-label"><em class="must">*</em>上级菜单:</label><div class="layui-inline"><div class="layui-unselect layui-form-select treeSelect"><div class="layui-select-title"><span class="layui-input layui-unselect" id="treeclass">选择上级菜单</span><input type="hidden" name="selectID" class="preMenuId"><i class="layui-edge" style="right: 20px;"></i></div><dl class="layui-anim layui-anim-upbit"><dd><ul id="meuntree"></ul></dd></dl></div></div></div>                
</div>

二、js

 需要的数据格式示范:

data2 = [{title: '早餐',id: 1,children: [{title: '油条',id: 5},{title: '包子',id: 6},{title: '豆浆',id: 7}]},{title: '午餐',id: 2,checked: true,children: [{title: '藜蒿炒腊肉',id: 8},{title: '西湖醋鱼',id: 9},{title: '小白菜',id: 10},{title: '海带排骨汤',id: 11}]},{title: '晚餐',id: 3,children: [{title: '红烧肉',id: 12,fixed: true},{title: '番茄炒蛋',id: 13}]},{title: '夜宵',id: 4,children: [{title: '小龙虾',id: 14,checked: true},{title: '香辣蟹',id: 15,disabled: true},{title: '烤鱿鱼',id: 16}]}];

 js代码:

layui.use(['form', 'layer', 'element', 'tree','util'], function () {var form = layui.form; var layer = layui.layer;var element = layui.element; var tree = layui.tree, util = layui.util;//初始化菜单树,点击某一列赋值显示到input框上ajax.post("/web/user/role/elements", {token: sessionStorage.getItem('token')}, function(res){var treeData = recureFn(res.list);treeData.unshift({id: 0,title: "无上级菜单",children: []})tree.render({elem: "#meuntree",data: treeData,click: function(obj){// layer.msg(JSON.stringify(obj.data));var $select = $(".layui-form-select");$select.removeClass("layui-form-selected").find(".layui-select-title span").html(obj.data.title).end().find("input:hidden[name='selectID']").val(obj.data.id);form.render();}})});//点击显示/隐藏树形下拉框$(".treeSelect").on("click", ".layui-select-title", function (e) {$(this).parents(".treeSelect").toggleClass("layui-form-selected");layui.stope(e); }).on("click", "dl ul span.layui-tree-iconClick", function (e) {layui.stope(e);//阻止事件冒泡,即点击span小图标展开时不触发父级逻辑});//递归处理树形数组function recureFn( arr ){var result = [];arr.map( item=>{   var option = {title: item.menuName,id: item.id,children: recureFn( item.children )}// if( item.children.length!=0 ) delete option.checked; //只给最底层添加checkedresult.push( option );});                       return result;                }})

三、下拉框回显以及禁用

        修改时输入框显示默认值。

//输入框显示
var $select = $(".layui-form-select.treeSelect");
$select.removeClass("layui-form-selected").find(".layui-select-title span").html(res.data.menuName).end().find("input:hidden[name='selectID']").val(res.data.id);//禁用
$(".layui-form-select.treeSelect").off("click");  //解绑click事件 
$("#treeclass").addClass("layui-disabled");

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

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

相关文章

访问修饰符(C# 编程指南)

所有类型和类型成员都具有可访问性级别&#xff0c;用来控制是否可以在您程序集的其他代码中或其他程序集中使用它们。您在声明类型或成员时使用以下访问修饰符之一来指定其可访问性&#xff1a; public 同一程序集中的任何其他代码或引用该程序集的其他程序集都可以访问该类型…

vuex Payload 荷载

1、payload payload&#xff1a;有效载荷&#xff0c;即记录有效信息的部分。 通常在传输数据时&#xff0c;为了使数据传输更可靠&#xff0c;要把原始数据分批传输&#xff0c;并且在每一批数据的头和尾都加上一定的辅助信息&#xff0c;比如这一批数据量的大小&#xff0c…

JSP知识总结

day11 JSP入门 1 JSP概述 1.1 什么是JSP JSP&#xff08;Java Server Pages&#xff09;是JavaWeb服务器端的动态资源。它与html页面的作用是相同的&#xff0c;显示数据和获取数据。 1.2 JSP的组成 JSP html Java脚本&#xff08;代码片段&#xff09; JSP动态标签 2 J…

layui table表格的复选框checkbox设置部分为不可选

需求&#xff1a;如上图&#xff0c;某些数据禁用删除功能&#xff0c;那么全选时&#xff0c;这些数据前面的复选框也不能选。 实现&#xff1a;在layui数据表格中设置了字段为 type:checkbox 但是想要实现部分不显示&#xff0c;不可选的功能。layui内置没有该功能&#xff…

Katas编写的Java教程:Mars Rover

编程kata是一种练习&#xff0c;可以帮助程序员通过练习和重复练习来磨练自己的技能。 本文是“ 通过Katas进行Java教程 ”系列的一部分。 本文假定读者已经具有Java的经验&#xff0c;熟悉单元测试的基础知识&#xff0c;并且知道如何从他最喜欢的IDE&#xff08;我是Intell…

es6 includes(), startsWith(), endsWith()

传统上&#xff0c;JavaScript 只有 indexOf方法&#xff0c;可以用来确定一个字符串是否包含在另一个字符串中。ES6 又提供了三种新方法。includes()&#xff1a;返回布尔值&#xff0c;表示是否找到了参数字符串。startsWith()&#xff1a;返回布尔值&#xff0c;表示参数字符…

Rails之格式化价格方法

一种是直接在试图中队价格信息进行格式化如&#xff1a;<div class"price"><%sprintf("&#xffe5;%0.02f",product.price)%></div>另外一种是用单独的辅助方法来处理价格格式化&#xff0c;即number_to_currency&#xff0c;如&#x…

CodeCombat代码全记录(Python学习利器)--Kithgard地牢代码1

Kithgard地牢注意&#xff1a;在调用函数时&#xff0c;要在函数的后面加上括号内容&#xff0c;否则在python中&#xff0c;将不会认为你在调用这个函数内容&#xff0c;而你的英雄将像木头一样站在原地不会执行上左下右的移动&#xff01;&#xff01;&#xff01; hero.move…

layui upload阻止文件上传问题,及多选文件上传

1、效果展示&#xff1a; 2、需求&#xff1a; 下拉框及月份都为不空&#xff0c;且有文件数据才能提交上传。 3、环境&#xff1a; 目前项目中引用的 layui 版本是 2.4.5。在 before 中进行判断&#xff0c;使用 return false 想要阻止文件上传没反应&#xff0c;文件仍然会…

JPA教程:实体映射-第2部分

在上一篇文章中&#xff0c;我展示了一种持久保存实体的简单方法。 我解释了JPA用于确定实体默认表的默认方法。 假设我们要覆盖此默认名称。 我们之所以喜欢这样做&#xff0c;是因为数据模型是以前设计和修复的&#xff0c;并且表名与我们的类名不匹配&#xff08;例如&#…

Vue DOM事件

本文参考自&#xff1a;https://mp.weixin.qq.com/s?src3&timestamp1527154113&ver1&signaturetWGeTa86gyK*RL0P7nwlA6-8V14FjzxUTh7CM9kQLjl0DV3sx*2hKauMGZKoYBkTSp14Zw6MOD8pU-haYmJoNTSBI5rptCZwf3wTIXLUMUOYDOPZtxm9wJaSm0l7vqshH98ToXQCcfm-5jR-Y66eAYzuFM5…

2019.06.17课件:[洛谷P1310]表达式的值 题解

P1310 表达式的值 题目描述 给你一个带括号的布尔表达式&#xff0c;其中表示或操作|&#xff0c;*表示与操作&&#xff0c;先算*再算。但是待操作的数字&#xff08;布尔值&#xff09;不输入。 求能使最终整个式子的值为0的方案数。 题外话 不久之前我在codewars上做过一…

vue+element 封装日期范围组件(双向绑定)

像这样的日期组件&#xff0c;在后台管理项目中是比较多的&#xff0c;而且加了快捷选项&#xff0c;代码量较多&#xff0c;因此封装成组件。 封装这一类型的组组件&#xff0c;主要是了解输入框双向绑定 v-model 的过程。 1、了解输入框双向绑定的过程&#xff1a; 官网&am…

句柄是什么?1

句柄是什么&#xff1f; 1.句柄是什么&#xff1f; 在windows中&#xff0c;句柄是和对象一一对应的32位无符号整数值。对象可以映射到唯一的句柄&#xff0c;句柄也可以映射到唯一的对象。2.为什么我们需要句柄&#xff1f; 更准确地说&#xff0c;是windows需要句柄。w…

用Hystrix保护您的应用程序

在之前的帖子http://www.javacodegeeks.com/2014/07/rxjava-java8-java-ee-7-arquillian-bliss.html中&#xff0c;我们讨论了微服务以及如何使用&#xff08;RxJava&#xff09;的Reactive Extensions编排微服务。 但是&#xff0c;如果一项或多项服务由于已被暂停或引发异常而…

python方法未绑定错误

相信 Python 程序员多多少少都和我一样遇到过 Method Unbound Error&#xff0c;直译过来就是 “方法未绑定错误”&#xff0c;虽然搜索之后知道了使用 classmethod 这样的装饰起后就可以解决问题&#xff0c; 但是一直没有得到完全解惑。 我们知道&#xff0c;Python 是一个动…

若依 从下载到成功运行及打包

官网&#xff1a;http://www.ruoyi.vip/ 目录 一、下载并运行项目 二、关于 若依 接口地址配置 2.1 若依的跨域代理介绍 2.2 配置跨域代理&#xff0c;调用后台接口 2.2.1 配置 后台 ip 地址 2.2.2 页面报“系统接口404”错误 三、打包配置 3.1 打包之后静态资源404…

Windows平台下 找回已丢失的MySql root 用户密码

该随笔供初学MySql者作为参考&#xff0c;本人第一次写博客&#xff0c;欢迎各位大虾拍砖&#xff01; 主要步骤&#xff1a; 1.关闭MySql服务 2.在控制台下键入cd命令&#xff0c;进入MySql的安装目录的Bin目录下 3.键入命令 mysqld --skip-grant-tables(参数大致意思&#xf…

JPA教程:实体映射-第3部分

在上一篇文章中&#xff0c;我展示了两种读取/写入持久实体状态的不同方法-字段和属性。 使用字段访问模式时&#xff0c;JPA使用反射直接从实体的字段读取状态值。 如果我们没有明确指定列名&#xff0c;它将直接将字段名转换为数据库列名。 在属性访问模式下&#xff0c;使用…

uniAPP小程序 子组件使用watch不生效,H5正常,小程序不正常(其实是子组件model选项的问题)

第一次用 uniapp 写小程序&#xff0c;还是遇到挺多问题的。写了一个下拉多选组件&#xff0c;发现同样的代码&#xff0c;在H5上运行效果正常&#xff0c;在小程序上压根不走 watch 。 uniapp官网&#xff1a;【全局配置 | uni-app官网】 看文档 watch 是支持H5、小程序的&…