layui.formSelects自定义多选组件在layer.open中使用、获取、复现

layui.formSelects自定义多选组件在layer.open中使用、获取、复现

引入css和js

//<th:block th:include="include :: layui-formSelects-css"/>
<link th:href="@{/ajax/libs/layui-formSelects/formSelects-v4.css}" rel="stylesheet"/>
//<th:block th:include="include :: jsPinyin-js"/>//开启拼音模糊搜索
<script th:src="@{/ajax/libs/tlink/lay/modules/js-pinyin.js}"></script>

html:

<!--弹窗-->
注意:layui.open中的弹窗中的内容单独写在页面里,不要在js里面直接渲染,可能导致多选组件失效。
<form class="layui-form add-form" id="list-form" lay-filter="list-form" style="display: none;margin:20px"><div class="layui-form-item"><label class="layui-form-label">用户</label><div class="layui-input-block new-input-block"><select id="controlList" name="controlList"  lay-filter="controlList" xm-select="controlList" xm-select-search="" xm-select-search-type="dl"xm-select-skin="normal"><option value="">请选择</option><option value="1">11</option><option value="2">22</option></select></div></div>
</form>

js:

layui.extend(
{formSelects : '/ajax/libs/layui-formSelects/formSelects-v4',})
layui.use(['laypage', 'layer', 'tree', 'form', 'layarea', 'formSelects'], function () {var laypage = layui.laypage, layer = layui.layer, tree = layui.treeform = layui.formvar laydate = layui.laydate;//日期时间模块var laypage = layui.laypage;//分页模块var laytpl = layui.laytpl;var layarea = layui.layarea;var formSelects = layui.formSelects;//载入自定义多选组件// 用于复现之前选中的值formSelects.value('controlList', ['1','2'], true); // true表示是否渲染到DOM上,默认为true// formSelects.render('controlList'); // 初始化名为controlList的选择器(不要也可)$(document).on("click",".lists",function (){layer.open({type: 1,title: '用户设置',shade: 0.1,area: ['635px', '500px'],btn: ['确定', '取消'],content:$('#list-form'), success: function (layero, index) {//formSelects.render('controlList'); // 确保在弹窗中重新渲染选择器(不要也可)}, btn1: function (index) {//确定// form.render()var value1 = formSelects.value('controlList');  // [{"name":"11","val":"1"},{"name":"22","val":"2"}]var value2 = formSelects.value('controlList', 'value'); // [{"name":"11","val":"1"},{"name":"22","val":"2"}]var value3 = formSelects.value('controlList','all'); // [{"name":"11","val":"1"},{"name":"22","val":"2"}]var value4 = formSelects.value('controlList','val'); // ["1","2"]var value5 = formSelects.value('controlList','valStr'); // 1,2 字符串var value6 = formSelects.value('controlList','name'); // ["11","22"]console.log(value1,'参数:无');console.log(value2,'参数:value');console.log(value3,'参数:all');console.log(value4,'参数:val');console.log(value5,'参数:valStr');console.log(value6,'参数:name');}, btn2: function () {//取消}})})//开启拼音模糊搜索formSelects.filter(null, function(id, inputVal, val, isDisabled){if(PY.fullPY(val.name).toLowerCase().indexOf(inputVal) != -1 ||    //拼音全拼是否包含PY.fullPY(val.name, true).indexOf(inputVal) != -1 ||            //拼音简拼是否包含val.name.indexOf(inputVal) != -1                                //文本是否包含){return false;}return true;});})

效果:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

或者直接在标签上回显:
参考:https://blog.csdn.net/wang_59881/article/details/133383510?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0-133383510-blog-130152832.235v43pc_blog_bottom_relevance_base7&spm=1001.2101.3001.4242.1&utm_relevant_index=2

// 新增代码
<label class="col-sm-3 control-label">通道:</label><div class="col-sm-8"><select name="channelIds" multiple id="channelIds" class="form-control"><option th:each="channel:${channels}" th:value="*{channel.id}" th:text="${channel.channelName}"></option></select></div>
// 编辑回显
<label class="col-sm-3 control-label">通道权限</label><div class="col-sm-8"><select name="channelIds" multiple id="channelIds" class="form-control"><option th:each="channel:${channels}" th:value="*{channel.id}" th:text="${channel.channelName}"th:selected="${selectChannels.contains(channel.id)}"></option></select></div>

编辑回显重点是th:selected=“${selectChannels.contains(channel.id)}”
selectChannels是后端返回的已绑定的通道列表,channels是通道列表

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

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

相关文章

基于SpringBoot的社团管理系统【2026最新】

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

运行node18报错

又碰到一个奇葩的问题&#xff0c;报错如下> tigermes.vue30.1.0 serve > vue-cli-service serveBrowserslist: caniuse-lite is outdated. Please run:npx update-browserslist-dblatestWhy you should do it regularly: https://github.com/browserslist/update-db#rea…

Python第三方库IPFS-API使用详解:构建去中心化应用的完整指南

目录 Python第三方库IPFS-API使用详解&#xff1a;构建去中心化应用的完整指南 引言&#xff1a;IPFS与去中心化存储的革命 星际文件系统&#xff08;IPFS&#xff0c;InterPlanetary File System&#xff09;是一种革命性的点对点超媒体协议&#xff0c;旨在创建持久且分布式的…

ETL与iPaaS的融合方案:加速数据集成流程

在今天的商业世界里&#xff0c;数据几乎无处不在。企业每天都在产生和接收海量的数据——从CRM到ERP&#xff0c;从云端SaaS应用到本地数据库&#xff0c;来源越来越分散&#xff0c;集成也越来越复杂。 传统的ETL工具&#xff08;提取、转换、加载&#xff09;在处理结构化数…

详解flink SQL基础(四)

文章目录1.Flink SQL介绍2.streaming SQL&watermarks使用3.窗口聚合&#xff08;window aggregations&#xff09;4.over aggregations5.FlinkSQL 流连接&#xff08;Streaming join&#xff09;6.使用MATCH_RECOGNIZE 进行模式识别和复杂事件处理7.变更记录&#xff08;ch…

有鹿机器人:为城市描绘清洁新图景的智能使者

一、智慧清洁&#xff1a;科技赋能的环境革新每天清晨&#xff0c;当我沿着小区路径缓缓行驶&#xff0c;双激光雷达系统便开始精准测绘环境。我的专业清扫能力源自2cm精度死亡贴边技术&#xff0c;这项让同行惊叹的能力&#xff0c;可以轻松震出嵌了十年的烟头&#xff0c;彻底…

Tableau Server高危漏洞允许攻击者上传任意恶意文件

Tableau Server 存在一个严重安全漏洞&#xff0c;可能允许攻击者上传并执行恶意文件&#xff0c;最终导致系统完全沦陷。该漏洞编号为 CVE-2025-26496&#xff0c;CVSS 评分为 9.6 分&#xff0c;影响 Windows 和 Linux 平台上的多个 Tableau Server 和 Tableau Desktop 版本。…

数据结构07(Java)-- (堆,大根堆,堆排序)

前言 本文为本小白&#x1f92f;学习数据结构的笔记&#xff0c;将以算法题为导向&#xff0c;向大家更清晰的介绍数据结构相关知识&#xff08;算法题都出自&#x1f64c;B站马士兵教育——左老师的课程&#xff0c;讲的很好&#xff0c;对于想入门刷题的人很有帮助&#x1f4…

onnx入门教程(七)——如何添加 TensorRT 自定义算子

在前面的模型入门系列文章中&#xff0c;我们介绍了部署一个 PyTorch 模型到推理后端&#xff0c;如 ONNXRuntime&#xff0c;这其中可能遇到很多工程性的问题。有些可以通过创建 ONNX 节点来解决&#xff0c;该节点仍然使用后端原生的实现进行推理。而有些无法导出到后端的算法…

YggJS RButton 按钮组件 v1.0.0 使用教程

&#x1f4cb; 目录 简介核心特性快速开始安装指南基础使用主题系统高级功能API 参考最佳实践性能优化故障排除总结 &#x1f680; 简介 YggJS RButton 是一个专门为 React 应用程序设计的高性能按钮组件库。它提供了两套完整的设计主题&#xff1a;科技风主题和极简主题&…

Linux(二十)——SELinux 概述与状态切换

文章目录前言一、SELinux 概述1.1 SELinux 简介1.2 SELinux 特点1.2.1 MAC&#xff08;Mandatory Access Control&#xff09;1.2.2 RBAC&#xff08;Role-Based Access Control&#xff09;1.2.3 TE&#xff08;Type Enforcement&#xff09;1.3 SELinux 的执行模式1.4 SELinu…

Linux学习-TCP网络协议(补充)

一、TCP 头部标志位 TCP 头部包含多种标志位&#xff0c;用于控制连接建立、数据传输、连接断开等过程&#xff0c;核心标志位及作用如下&#xff1a;标志位英文全称作用SYNSynchronize Sequence Numbers请求建立连接&#xff0c;三次握手第一步发送 SYN 包ACKAcknowledgment响…

Go编写的轻量文件监控器. 可以监控终端上指定文件夹内的变化, 阻止删除,修改,新增操作. 可以用于AWD比赛或者终端应急响应

工具介绍 0RAYS-AWD-Filechecker一个用Golang编写的, 轻量级的文件监控器, 会监控指定文件夹内文件删除, 修改, 新增操作, 然后立刻告警并复原. 一开始是为AWD比赛写的, 主要是为了防止靶机的web目录被上马. 但也可以用到蓝队等场景上. 由于使用的Linux的系统调用, 仅支持Linux…

【6】MySQL 数据库基础操作

MySQL 数据库基础操作数据库操作查看数据库创建数据库删除数据库修改数据库数据表操作创建表修改表删除表数据库操作 查看数据库 查看有哪些数据库&#xff1f; 示例&#xff1a; [rootlocalhost][(none)]> show databases; -------------------- | Database |…

Android 探索APP/应用启动模式、Intent的Flag启动标志位

写在前面&#xff1a;Android APP有四种启动模式——》标准模式(Standard)、栈顶复用模式(SingleTop)、栈内复用模式(SingleTask)、单例模式(SingleInstance)&#xff0c;默认就是标准模式。启动模式决定了Activity在任务栈内的存在方式&#xff0c;影响了Back返回键Activity返…

Y9000P部署开源模型

环境信息&#xff1a; 设备&#xff1a;Y9000P GPU&#xff1a;RTX 3060 6G 系统版本&#xff1a;Ubuntu 24.04 一、下载模型 1、环境准备 1、安装工具 apt-get -y install git-lfs git lfs install apt-get install python3 python-is-python3 pip3.12 config set global.inde…

大模型入门实战 | 基于 YOLO 数据集微调 Qwen2.5-VL-3B-Instruct 的目标检测任务

大模型入门实战 | 基于 YOLO 数据集微调 Qwen2.5-VL-3B-Instruct 的目标检测任务这篇就是新手向的“保姆级”实操文。你将把 YOLO 检测数据 转成 对话式 Grounding 数据&#xff0c;用 ms-swift 做 LoRA 微调&#xff0c;再用脚本 推理 可视化。 但值得注意的是&#xff0c;一…

基于Python+MySQL实现物联网引论课程一个火警报警及应急处理系统

物联网引论课程大作业设计报告一、选题、内容及功能说明我们大作业选择的是题目三&#xff1a;一个火警报警及应急处理系统。主要需要实现四个功能&#xff1a;感知环境温度&#xff0c;当环境温度超过阈值&#xff0c;自动触发报警&#xff1a;终端 led 以固定频率闪烁&#x…

基于印染数据的可视化系统设计与实现

标题:基于印染数据的可视化系统设计与实现内容:1.摘要 随着印染行业的快速发展&#xff0c;印染数据呈现爆发式增长。为了更好地管理和分析这些数据&#xff0c;提高印染生产的效率和质量&#xff0c;本研究旨在设计并实现一个基于印染数据的可视化系统。通过收集印染生产过程中…

实验1 第一个微信小程序

实验1 第一个微信小程序一、实验目标二、实验步骤1. 自动生成小程序2. 手动创建小程序三、程序运行结果四、问题总结与体会chunk的博客地址一、实验目标 1、学习使用快速启动模板创建小程序的方法&#xff1b; 2、学习不使用模板手动创建小程序的方法。 二、实验步骤 1. 自…