[Layui]Open子页面动态下拉框赋值解决办法

在Layui中,当需要在open子页面时为动态下拉框赋值,直接赋值的方法无法奏效,因为此时下拉框尚未加载数据。一种可行的策略是先给第一个下拉框赋值,然后调用子页面的加载回调函数,等待数据加载完成后再对动态下拉框进行赋值。通过这样的步骤,可以确保下拉框在有数据的情况下被正确设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

子页面动态下拉框赋值

上篇文章解决了如何联动问题,但是还有一种情况,open子页面时给动态下拉框赋值。
直接赋值并不可以,此时下拉框是没有数据的。监听函数并不会触发动态函数。

我的思路:
给第一个下拉框直接赋值(本次测试用静态),执行子页面函数加载回调,待回调函数加载完毕数据,然后动态下拉框赋值。

HTML:

if (obj.event === 'edit') {
                var index = layer.open({
                    title: '编辑视频',
                    type: 2,
                    shade: 0.2,
                    maxmin:true,
                    shadeClose: true,
                    area: ['60%', '60%'],
                    content: '/SysVideo/Edit',
                    success: function (layero, index){
                        //向layer页面传值,传值主要代码
                        var body = layer.getChildFrame('body', index);
                        //获取name名为Id的控件进行赋值
         
layui中,编辑弹窗回显可以通过使用form.val()方法来实现。具体步骤如下: 1. 在打开编辑弹窗之前,先获取需要编辑的数据,并将数据赋值给表单元素。 2. 在弹窗中,表单元素的name属性需要与获取到的数据中的字段名相同。 3. 在弹窗中,使用form.val()方法将获取到的数据回显到表单中。 下面是一个示例代码: HTML代码: ``` <form class="layui-form" action=""> <div class="layui-form-item"> <label class="layui-form-label">用户名</label> <div class="layui-input-block"> <input type="text" name="username" lay-verify="required" placeholder="请输入用户名" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">性别</label> <div class="layui-input-block"> <input type="radio" name="sex" value="男" title="男"> <input type="radio" name="sex" value="女" title="女"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label">城市</label> <div class="layui-input-block"> <select name="city" lay-verify="required"> <option value=""></option> <option value="北京">北京</option> <option value="上海">上海</option> <option value="广州">广州</option> <option value="深圳">深圳</option> </select> </div> </div> <div class="layui-form-item"> <div class="layui-input-block"> <button class="layui-btn" lay-submit lay-filter="formDemo">立即提交</button> <button type="reset" class="layui-btn layui-btn-primary">重置</button> </div> </div> </form> ``` JS代码: ``` // 获取需要编辑的数据 var data = { username: '张三', sex: '男', city: '北京' }; // 打开编辑弹窗之前,将数据赋值给表单元素 $('input[name="username"]').val(data.username); $('input[name="sex"][value="'+data.sex+'"]').attr('checked', true); $('select[name="city"]').val(data.city); // 在弹窗中,使用form.val()方法将获取到的数据回显到表单中 form.val('example', data); ``` 在上面的代码中,form.val()方法的第一个参数是表单的lay-filter属性值,第二个参数是需要回显的数据对象。在这个例中,表单的lay-filter属性值为example。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

厦门德仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值