layui formSelects实现下拉框select多选,并且编辑时候回显

2023-11-09前端开发
1651

1、首先引入formSelects相关配置:引入formSelects-v4的js、css,如果采用第三步的方式引入也是可以的,这里推荐第三步layui.config方式引入。
<link rel="stylesheet" href="/static/layui/css/formSelects-v4.css"/>
<script src="/static/layui/js/formSelects-v4.js"></script>
2、定义一个下拉框
<div class="layui-inline">
                  <label class="layui-form-label">地区</label>
                <div class="layui-input-inline" style="width:350px">
                    <select name="deptId" id="deptId" lay-filter="deptId" lay-verify="required" 
					lay-reqtext="地区不能为空" xm-select="select1" xm-select-height="36px"></select>
                </div>
              </div>  
3、js配置,注意:base: ‘/static/layui/js/’ 一定要与你引入的路径一致,并且写全,不然不起作用
<script>
//全局定义一次, 加载formSelects
layui.config({
    base: '/static/layui/js/' //此处路径请自行处理, 可以使用绝对路径
}).extend({
    formSelects: 'formSelects-v4'
});
//加载模块
layui.use(['jquery', 'formSelects'], function(){
	form = layui.form;
    var layer = layui.layer,
     $ = layui.$;
    var formSelects = layui.formSelects;
    formSelects.data('select1', 'local', {
            arr: [
            {"name": "随笔", "value": 1},
            {"name": "测试", "value": 2},
            {"name": "博客日志", "value": 3}
            ]
        });
    
});
</script>
4、实现从后端查询数据到下拉框,并且编辑时候回显到下拉框
<script>
//全局定义一次, 加载formSelects
layui.config({
    base: '/static/layui/js/' //此处路径请自行处理, 可以使用绝对路径
}).extend({
    formSelects: 'formSelects-v4'
});
//加载模块
	layui.use([ 'jquery', 'formSelects' ], function() {
		form = layui.form;
		var layer = layui.layer, $ = layui.$;
		var formSelects = layui.formSelects;

		var formData = parent.formData;//拿到父页面数据

		$.ajax({
			url : '/stress/taskprogress/getdept',
			dataType : 'json',
			type : 'get',
			success : function(data) {
				var keys = [];
				$('#deptId').empty();
				$('#deptId').append(new Option("请选择机构", ""))
				$.each(data.data, function(index, item) {
					var temp = temp = {
							"name" : item.deptName,
							"value" : item.deptId,
							"children" : fn(item.children)
						//这里需要注意,value应该不同,否则在下拉框选择数据的时候,选择上的数据回事一样的
						}
					if (formData != null) {  //编辑时候回显
						var deptId = formData.deptId.split(",");
						for (var i = 0; i < deptId.length; i++) {
							if (item.deptId == deptId[i]) {
								temp = {
									"name" : item.deptName,
									"value" : item.deptId,
									"selected" : "selected",
									"children" : fn(item.children)
								//这里需要注意,value应该不同,否则在下拉框选择数据的时候,选择上的数据回事一样的
								}
								
							} 
						}
					}

					keys.push(temp);

				});

				//渲染select
				form.render("select");
				formSelects.data("select1", "local", {
					arr : keys
				});

			}
		});

          //递归求字选择项
		function fn(children) {
			var child = [];
			if (children == null) {
				return child;
			}
			$.each(children, function(index, item) {
				var temp = {
					"name" : item.deptName,
					"value" : item.deptId,
					"children" : fn(item.children)
				//这里需要注意,value应该不同,否则在下拉框选择数据的时候,选择上的数据回事一样的
				}
				
				if (formData != null) {
					var deptId = formData.deptId.split(",");
					for (var i = 0; i < deptId.length; i++) {
						if (item.deptId == deptId[i]) {
							temp = {
								"name" : item.deptName,
								"value" : item.deptId,
								"selected" : "selected",
								"children" : fn(item.children)
							//这里需要注意,value应该不同,否则在下拉框选择数据的时候,选择上的数据回事一样的
							}
							
						} 
					}
				}
				
				child.push(temp);
			});
			return child;
		}

	});
</script>
 
The End

相关推荐

layui实现图片上传成功后回显点击放大图片功能
layui实现图片上传成功后回显点击放大图片功能,html代码部分: !-- html代码--div class="layui-form-item" label class="layui-form-label"上传图片/label div class="layui-input-block" button type="button" class="layui-btn" id="license-auth-letter-...
2025-09-06 前端开发
202

Layui实现数据表格中鼠标悬停图片放大离开时恢复原图
Layui实现数据表格中鼠标悬停图片放大离开时恢复原图的效果,最终效果如下图所示: 实现代码如下,在done函数中调用hoverOpenImg方法 var tableIns = window.demoTable = table .render({ elem : '#idTest', id : 'idTest', url : '/postData', //width : 150...
2025-09-04 前端开发
112

layui点击文本输入框调起弹出选择框并选择内容的两种方法参考
我们在用到layui时候,需要点击文本输入框调起弹出选择框并选择内容,这个要怎么操作呢?以下两种方法可以参考: 1、点击名称,弹出信息弹框,选择表格中的某一行,实现效果如下: html页面代码 !--计量器具弹出层-- div id="equipment" lay-filter="equipmen...
2025-09-02 前端开发
167

微信小程序实现点击复制功能和手机拨打电话功能
做小程序项目的时候,客户提了一个功能需求优化,就是长按文字需要复制全部内容,因为有的手机支持全选复制,有的手机不支持全选复制。 通过设置系统剪贴板的内容和获取系统剪贴板的内容实现复制功能 html相关代码: van-field value="{{form.contactPhone}}"...
2025-07-02 前端开发
78

js拖拽排序插件Sortable.js如何使用
由于项目功能需要,要实现对table中的行实现拖拽排序功能,找来找去发现Sortable.js能很好的满足这个需求,而且它还是开源的,于是乎就开始学习使用Sortable.js 特点 轻量级但功能强大 移动列表项时有动画 支持触屏设备和大多数浏览器(IE9及以下除外) 支持...
2025-06-12 前端开发
161

xm-select多选下拉框实现拼音、首字母搜索匹配
最近项目中遇到需要下拉框能实现根据首字母进行模糊搜索,下拉框使用的是xm-select,而xm-select支持中文的搜索,后端接口也仅支持中文的。因此需要借助其他插件来完成功能。最终实现的效果如下: 涉及到的基础文件:引用 pinyin.js 和 initials.js。再引用 l...
2025-06-06 前端开发
89