Layui动态添加下拉选项值以及根据后台返回数据默认选中某项值的功能 以及回显到表格上转变id为label值功能

 上代码

//html
<div class="layui-form-item " style="width:calc(100% - 55px)">
	<label class="layui-form-label">施工单位:<span class="star">*</span>:</label>
	<div class="layui-input-block">
		<select id="projectBudgetedMoney" name="projectBudgetedMoney" class="search-input">
			<option value="">请选择标签分类</option>
		</select>
	</div>
</div>

//js
// 获取施工单位额
function getList() {
    $.ajax({
        type: "get",
        url: getBuildingUnitsList,
        async: false,
        headers: {
            'Content-Type': 'application/json',
            'dm-authorize-token': $.cookie("token"),
        },
        success: function (res) {
            if (res.data) {
                for (var a = 0; a < res.data.length; a++) {
                    $("#projectBudgetedMoney").append('<option value="' + res.data[a].value + '" label="' + res.data[a].name + '">' + res.data[a].name + '</option>');
        //标记点!!!!!!!!!!!!!!!!!!!!!!!!
        //...........
        //!!!!!!!!!!!!!!!!!!!!!!!!!!!
                }
            } else {
                layer.msg(e.msg);
            }
        },
        error: function (e) {
            layer.msg(e.msg);
        }
    });
}

获取下拉框数据列表直接渲染动态生成到下拉框数据就好

二 根据后台返回的数据进行选中默认值(回显)

第一种方法:

       form.val("form", {
                    "projectWriteBy": data.writeBy,
                    "projectWriteTime": data.writeTime,
                    "projectTitle": data.title,
//举个例子 这个type就是返回的数据 自己用layui方法赋值给表单中name等于projectBudgetedMoney的输入框
                    "projectBudgetedMoney": data.你后台的字段值,
                })

不知道layui from表单赋值的方法 参考我之前文章 layui 基础

第二种方法:

             // 下拉框回显
                // $('#type').val(data.type)
                // $('#type option').each(function () {
                //     if ($(this).val() == data.type) {
                //         $(this).prop("selected", true);
                //         form.render('select');
                //     }
                // });

举个例子啊  $('#type').val(data.type) 就是你下拉框直接把后台值付给他 再遍历所有选项....大家应该都能看懂

三,修改回显到表格上的字段

我们一般上传到后台的一般都是选中选项的id值 后台有时候不给我们处理 我们展示到表格的也是id值

 就是这样这样怎么处理呢

首先,我们需要在函数中获取后台返回的ID与对应文字的映射关系,保存到一个对象中。然后,在"项目类型"的列中使用templet来展示对应的文字内容:

还是拿上面例子举例

// 获取后台返回的ID与对应文字的映射关系,保存在一个对象中
var projectTypeMap = {};
// 获取施工单位额
function getList() {
    $.ajax({
        type: "get",
        url: getBuildingUnitsList,
        async: false,
        headers: {
            'Content-Type': 'application/json',
            'dm-authorize-token': $.cookie("token"),
        },
        success: function (res) {
            if (res.data) {
                for (var a = 0; a < res.data.length; a++) {
                    $("#projectBudgetedMoney").append('<option value="' + res.data[a].value + '" label="' + res.data[a].name + '">' + res.data[a].name + '</option>');

                    //将数据对应的关系放入
                    let id = res.data[a].value;
                    let text = res.data[a].name;
                    projectTypeMap[id] = text;

                }
            } else {
                layer.msg(e.msg);
            }
        },
        error: function (e) {
            layer.msg(e.msg);
        }
    });
}

 表格展示用templet函数

       {
                    field: 'buildDept', title: '施工单位', templet: function (d) {
                        var typeId = d.buildDept;
                        return projectTypeMap[typeId] || ''; // 如果找不到对应的文字内容,返回空字符串
                    }
                },

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
layui中,想要将父页面的回显到子页面的下拉框中,可以通过以下步骤实现: 1. 在父页面中,定义一个变量或者通过某种方式获取到需要回显。 2. 将这个传递给子页面,在父页面的JavaScript中,可以使用如下代码将传递给子页面: ```javascript layui.use(['layer'], function(){ var layer = layui.layer; var parentValue = '需要回显'; layer.open({ type: 2, title: '子页面', content: '子页面的URL', area: ['500px', '400px'], success: function(layero, index){ // 在子页面中使用layui的方法获取到子页面的DOM对象 var body = layer.getChildFrame('body', index); // 通过DOM的id获取到下拉框 var select = body.find('#selectId'); // 将父页面的设置为下拉框默认 select.val(parentValue); // 使用layui的form模块进行下拉框的渲染 layui.use('form', function(){ var form = layui.form; form.render('select'); }); } }); }); ``` 3. 在子页面中的HTML代码中,定义一个id为selectId下拉框: ```html <select id="selectId" lay-verify="required"> <option value="">请选择</option> <option value="1">选项1</option> <option value="2">选项2</option> <option value="3">选项3</option> </select> ``` 以上代码中,通过layui的layer模块,打开一个子页面,并在子页面的加载成功回调函数中,获取到子页面中的下拉框,并将父页面的设置为下拉框默认。最后使用layui的form模块渲染下拉框,完成父页面回显到子页面的下拉框中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值