thinkphp+layui,在父页面对弹窗中的控件进行赋值操作(传值)。

本文介绍如何使用Layer.js库创建评论回复弹窗,并将评论ID传递给弹窗内的表单。通过具体示例代码展示了弹窗的创建过程及表单数据的设置方法。

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

问题描述:点击评论回复按钮->弹出表单输入框->对所点击的按钮进行回复评论->提交回复。

这里遇到的问题就是怎么通过layer创建一个弹窗并把这个需要操作的id值传到iframe弹出层。

解决:点击当前条需要回复的评论并获取到这个评论的id值,在点击回复按钮是用一个onclick方法把这个id传给这个方法;

在success中进行传值操作。

方法中的操作:
function reply(id) {
        layui.use('layer', function () {
            var $ = layui.jquery, layer = layui.layer; //独立版的layer无需执行这一句

            layer.msg('正在打开',{time:100});
            layer.msg('正在打开',{time:100});
            layer.open({
                type: 2 //此处以iframe举例
                , title: '添加新课程'
                , area: ['600px', '300px']
                , shade: 0
                , maxmin: true
                , offset: 'auto'//显示坐标-auto居中
                , content: '{:url("index/reply")}'
                , zIndex: layer.zIndex //重点1
                , success: function (layero) {
                    layer.setTop(layero); //重点2,窗体显示最前
                    // layero.find("iframe")        找到iframe的jquery对象
                    // layero.find("iframe")[0]     将jqeruy对象转化为Dom对象
                    // contentWindow                获取当前 iframe 的 内容 window对象(Dom对象)
                    //.send-hello 是 LayerFrame 的元素
                    var jquerySendButton = $("#commentid", layero.find("iframe")[0].contentWindow.document);//对当前显示最前的iframe进行操作
                    jquerySendButton.val(id);//设置当前窗体里面id为commentid的值
                }
            });
        });
    }
这里的#commentid对应的是弹出页面中的空间,这里是表单中的一个input,对其设置value属性。
弹出层中的表单代码
<form class="layui-form" role="search" action="" id="myform" method="POST">
    <input type="number" name="teacherId" hidden value="{$Think.session.teacherid}">
    <input type="number" name="commentid" id="commentid" hidden value="">

    <div class="layui-form-item layui-form-text">
        <label class="layui-form-label">课程简介</label>
        <div class="layui-input-block">
            <textarea name="content" placeholder="请输入内容" class="layui-textarea"></textarea>
        </div>
    </div>

    <div class="layui-form-item">
        <div class="layui-input-block">
            <button class="layui-btn" lay-submit="" lay-filter="demo1">提交回复</button>
            <button type="reset" class="layui-btn layui-btn-primary">重置</button>
        </div>
    </div>
</form>
这里顺便提一下,在点击按钮调起弹出层遇到的一个问题-->点击弹出按钮后页面虽然弹出但是显示为空白页,关闭后
再次打开才能显示出页面内容,这里我的想的是,要打开两次那我就先用一个弹出层来缓冲以下.
在打开iframe之前加一句:
layer.msg('正在打开',{time:100});
大家有好办法可以评论回复下!

本文参考:https://blog.youkuaiyun.com/returningprodigal/article/details/53541337


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值