不懂先生

layui实现向子页面传值
问题最近编写系统时遇到了编辑数据表并更新的功能,需要实现点击编辑按钮弹出编辑页面,需要将该条记录信息传入编辑页面代...
扫描右侧二维码阅读全文
29
2022/03

layui实现向子页面传值

问题

最近编写系统时遇到了编辑数据表并更新的功能,需要实现点击编辑按钮弹出编辑页面,需要将该条记录信息传入编辑页面

代码如下

table.on('tool(currentTableFilter)', function (obj) {
            var data = obj.data;
            console.log(data);
            if (obj.event === 'edit') {
                // console.log(data)
                var lay = layer.open({
                    title: '编辑信息',
                    type: 2,
                    shade: 0.2,
                    maxmin:true,
                    shadeClose: true,
                    area: ['90%', '90%'],
                    content: 'xxxx',
                    success: function(layero, index){
                        var body=layer.getChildFrame('body',index);//少了这个是不能从父页面向子页面传值的
                        //获取子页面的元素,进行数据渲染
                        body.contents().find("#id").val(data.id);
                        body.contents().find('#time').val(data.watch);  
                        body.contents().find('#username').val(data.username);
                        body.contents().find('#phone').val(data.phone);
                        body.contents().find('#service').val(data.service);
                        body.contents().find('#note').val(data.note);
                        body.contents().find('#question').val(data.question);
                        // 解决了子页面select赋值问题和默认选中问题
                        var select = 'dd[lay-value=' + data.questiontype + ']';
                        body.contents().find('dl').find(select).click();
                        var select = 'dd[lay-value=' + data.servicetype + ']';
                        body.contents().find('dl').find(select).click();
                                                
                    },
            
                    
                });
                $(window).on("resize", function () {
                    layer.full(index);
                });
                return false;
            }

其中

success: function(layero, index){
    var body=layer.getChildFrame('body',index);//少了这个是不能从父页面向子页面传值的
    //获取子页面的元素,进行数据渲染
    body.contents().find("#id").val(data.id);
    body.contents().find('#time').val(data.watch);  
    body.contents().find('#username').val(data.username);
    body.contents().find('#phone').val(data.phone);
    body.contents().find('#service').val(data.service);
    body.contents().find('#note').val(data.note);
    body.contents().find('#question').val(data.question);
 },

代码实现对表单的赋值,但实际中如果出现select选择栏,会出现只传值不会出现默认选中,解决方法为:将赋值语句修改为以下代码

    // 解决了子页面select赋值问题和默认选中问题
    var select = 'dd[lay-value=' + data.questiontype + ']';
    body.contents().find('dl').find(select).click();
    var select = 'dd[lay-value=' + data.servicetype + ']';
    body.contents().find('dl').find(select).click();

找到dl下面dd的值为传入值得选择,进行点击操作,便可解决select不能默认选择问题

Last modification:April 2nd, 2022 at 08:00 pm

Leave a Comment