问题描述:点击评论回复按钮->弹出表单输入框->对所点击的按钮进行回复评论->提交回复。
这里遇到的问题就是怎么通过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属性。
弹出层中的表单代码
课程简介
提交回复
重置
再次打开才能显示出页面内容,这里我的想的是,要打开两次那我就先用一个弹出层来缓冲以下.
在打开iframe之前加一句:layer.msg('正在打开',{time:100});大家有好办法可以评论回复下!
本文参考:https://blog..net/returningprodigal/article/details/53541337