layui 传递前端请求_layui弹出层如何传值?

layui弹出层如何传值?下面本篇文章给大家介绍一下layui弹窗间的传值(layui弹出层传值)(窗口传值)。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

主要有两部分从主窗口传值到弹出层

从弹出层传值到主窗口

通过session互传

通过调用父窗口的函数从而获取到父窗口的值(相反也是可以的)

1、从主窗口传值到弹出层

首先时js

changefileone函数时按钮绑定事件,按钮点击后调用这个函数然后弹出弹出层,加载changefile.html界面

然后success提前加载changefile的form数据(从主窗口传值到弹出层)//bootstraptable的修改,点击按钮的时候自动选中该行,因此可以获取到整行的值

function changefileone() {

var rowselect = $("#menuTable").bootstrapTable('getSelections'); //取得当前选定的selectItem对象,其中包括整行值

console.log(rowselect);

layer.open({

title: "修改文件属性",

type: 2,

content: "changefile.html",

area: ['50%', '70%'],

skin: "layui-layer-molv",

btn: ['确定', '关闭'],

success: function (layero, index) { //成功获得加载changefile.html时,预先加载,将值从父窗口传到 子窗口

console.log(obj.data.editAble);

let body = layer.getChildFrame('body', index);

//console.log(rowselect[0].filename);

body.find(".filename").val(rowselect[0].filename); //通过class名进行获取数据

body.find(".filepath").val(rowselect[0].path);//意思是将rowselect[0].path这个值传递到子窗口的class="filepath"这个的文本框中,(预先加载)

//body.find(".menuid").val(rowselect[0].previousid);

layui.form.render();

},

yes: function (index, layero) { //按了弹出层的确定按钮时,这是将在父窗口中获取子窗口form标签里的所有值,并根据name名和值形成键值对json对象

//console.log(layero);

layer.alert('来到这里了'+index);

let body = layer.getChildFrame("body", index);

let data = {};

body.find("#changefileform").serializeArray().forEach(function (item) { //获取弹出层写下的数据,input,下拉框啊,之类的表单元素(即changefileform下的所有数据)

data[item.name] = item.value; //根据表单元素的name属性来获取数据

});

data["fileid"] = rowselect[0].fileid;

//if (data["previousid"] == "" || data["previousid"] == null)

// data["previousid"] = rowselect[0].previousid;

console.log(data);

$.post('/api/dofile', data, function (result) {

if (result == "success") {

layer.alert("修改文件属性成功");

}

setTimeout(function () {

layer.close(index);

parent.location.reload();

}, 600);

});

layer.close(index);

resetSearch();

}

});

}

点击按钮后,提前加载

然后是html界面,script里面是用来下拉框加载数据库数据的,可以删掉

$(document).ready(function () {

var selectvalue = ""; //定义这个用来存放选择的value

layui.use('form', function () {

var form = layui.form;

$.get("/api/choosemenu", function (data) {

for (var j in data.rows) {

//alert(data.rows[j].Name);

$("#menuname").append("" + data.rows[j].Name + "");

}

form.render();

form.on('select', function (data) {

//alert(data.value);

//console.log(data.value);

selectvalue = data.value;

console.log(selectvalue);

});

})

})

})

文件名

文件路径

父目录

请选择父目录

2、然后再这个弹出层填写数据,按了确定后就开始加载这个js啦,这个获取数据是通过name属性来获取的,上面 那个的话是通过class名称来获取的

然后controller获取从js传来的数据的话,看我另外的博客

下拉框动态获取数据库数据

下拉框可以搜索

看我其他博客

3、通过session传值

设置sessionsessionStorage.setItem('roleid', 'hello');

取sessionvar ss=sessionStorage.getItem('roleid');

删除session中保存指定的值sessionStorage.removeItem('roleid');

删除全部sessionStorage.clear();

4、通过调用父窗口的函数从而获取到父窗口的值, 这个适合获取少量值, 父窗口的js:

(1)(这个是获取bootstraptable的选定值)menuTable是表格的id,这样返回的值是jSON值来的function getrowselect() {

return $.map($('#menuTable').bootstrapTable('getSelections'), function (row) {

return row//返回数据行

});

}

(2)如果是普通的text文本框(父窗口的js)function getrowselect() {

return $.map($('#text').val(), function (row) {

return row//返回数据行

});}

(3)也可以直接在子窗口的jswindow.parent.getElementById("text").val();

如果是(1)(2)种的话子窗口js这样调用(这个是接(1)(2)的啊别搞错了):var rowselect = window.parent.getrowselect();

console.log(rowselect);//这里可以打印一下获取到值没有

5、假如是子窗口传值给父窗口

父窗口js:function getrowselect(userdata) {

console.log(userdata);

document.getElementById(userdata.inputid).value = userdata.uname;

var dffff = "id" + userdata.inputid;

document.getElementById(dffff).value=userdata.uid;

return;

}

子窗口://data="";

//data={"ss"="hello","gg"="world"}

window.parent.getrowselect(data);

6、假如子弹窗窗口想要比父窗口大的话,需要用到top.layer.open或者parent.layer.open

这时通过var iframeWin = window[layero.find('iframe')[0]['name']]; //得到iframe页的窗口对象,执行iframe页的方法:iframeWin.method();

更多web前端知识,请查阅 HTML中文网 !!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值