layui弹出层如何传值

layui弹出层传值的实现方法:1、从主窗口传值到弹出层;2、从弹出层传值到主窗口;3、通过session互传;4、通过调用父窗口的函数从而获取到父窗口的值。

layui弹出层如何传值

本教程操作环境:Windows7系统、layui1.0版,该方法适用于所有品牌电脑。

推荐:《javascript基础教程》《javascript基础教程》

主要有两部分

从主窗口传值到弹出层

从弹出层传值到主窗口

通过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();        }    });    }

登录后复制

点击按钮后,提前加载

972a313559d7102b1af225339bd794f.png

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

nbsp;html>                                $(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名称来获取的

41fde8c7b0641a404f523c0dc8d84f7.png

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

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

下拉框可以搜索

看我其他博客

3、通过session传值

设置session

sessionStorage.setItem('roleid', 'hello');

登录后复制

取session

var 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)也可以直接在子窗口的js

window.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();

登录后复制

以上就是layui弹出层如何传值的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3141414.html

(0)
上一篇 2025年3月30日 06:59:29
下一篇 2025年3月3日 12:32:49

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • layui自定义滑动弹窗动画

    导语: (学习视频分享:编程视频) 我们知道layui的layer模块中的anim参数是可以设置弹窗动画效果的,但是这种弹窗动画种类很少。现在项目中要实现一个从右侧弹出的弹窗效果,因此参考官方模板layuiAdmin后自己封装了一个滑动弹窗…

    2025年3月30日 编程技术
    100
  • 使用layui框架封装ajax模块的具体步骤

    layui 是一款采用自身模块规范编写的前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与组织形式,门槛极低,拿来即用。 (学习视频分享:编程视频) 平常使用中,ajax可以说使用广泛,所以这里我们添加一个自己的模块,将ajax封…

    2025年3月30日 编程技术
    100
  • layui登录界面美化效果展示

    完整代码展示如下: (学习视频分享:编程入门) 1、前端html login.html nbsp;html>登录               登录后复制           登录界面样式 @CHARSET “UTF-8”;body{ …

    2025年3月30日
    100
  • layui关闭当前弹出框的方法

    本文为大家分享了layui关闭当前弹出框的两种情况及方法,希望能够帮助到大家。 layer.close(index) – 关闭特定层 //当你想关闭当前页的某个层时var index = layer.open();var ind…

    2025年3月30日
    100
  • layui前后端分离的项目怎么跑起来

    运行 Layui 前后端分离项目需依次执行以下步骤:安装 Node.js 和 NPM。初始化 Node.js 项目。安装依赖项。创建服务器端代码。创建前端代码。运行服务器端代码。 如何运行 Layui 前后端分离项目 layui 是一个功能…

    2025年3月30日
    100
  • layui怎么引入vue

    将 Vue.js 引入 layui 需要以下步骤:安装 Vue.js 并引入在 layui 脚本之前;在 layui 脚本中使用 layui.define 方法引入 Vue.js;在 layui 组件中使用 Vue.js 语法和 API。 …

    2025年3月30日
    100
  • layui打印表单怎么实现

    使用 layui 框架打印表单,需要依次执行以下步骤:引入 layui 文件、创建打印按钮、监听按钮事件、获取表单内容、调用 layui 打印功能。例如,使用 jQuery 获取表单内容并打印:$(‘#form’).…

    2025年3月30日
    100
  • layui和jsp有什么关系

    Layui 和 JSP 是协同工作的前后端技术:Layui 负责前端交互和界面呈现,而 JSP 负责服务器端逻辑和数据处理。JSP 可以使用 Layui 脚本,访问表格、表单、图表等功能。Layui 可通过 AJAX 与 JSP 交换数据,…

    2025年3月30日
    100
  • layui框架怎么传值

    layui框架提供了四种传值方法:1. URL传参;2. form表单提交;3. layui.data()存储;4. 传递对象。 layui框架传值方法 layui框架提供了多种传值方法,以满足不同的使用场景。 1. URL传参 在页面加载…

    2025年3月30日
    100
  • layui支持哪些IE浏览器版本?

    Layui对IE浏览器的兼容性有限,并非完美支持所有版本。IE9及以上版本兼容性相对较好,但越老的IE版本问题越多。建议避免在IE低版本浏览器上使用Layui,以确保最佳体验。如果必须支持老旧IE,需进行充分测试和兼容性处理工作。 Layu…

    2025年3月30日
    100

发表回复

登录后才能评论