zoukankan      html  css  js  c++  java
  • layui父表单获取子表单的值完成修改操作

    最近在做项目时,学着用layui开发后台管理系统。

    但在做编辑表单时遇到了一个坑。

    点击编辑时会出现一个弹窗。

     我们需要从父表单传值给子表单。content是传值给子表单

    layer.open({
                                                                    type : 2,
                                                                    title : "编辑管理员",
                                                                    content : "Admin_edit?id="+e.data.id,
                                                                    
                                                                    area : [
                                                                            "420px",
                                                                            "420px" ],
                                                                    btn : [ "确定",
                                                                            "取消" ],
                                                                    yes : function(e, t) {

    之后这一步,遇到了一个坑,一直以为弹窗是运行在子窗口的jsp文件上。用var data = $("#id").val()取值,结果发现获取的数据上无法识别。

    后来百度了下,发现弹窗取子窗口值是需要父窗口提取子窗口的值。

    else if ("edit" === e.event) {
                                                        t(e.tr);
                                                        layer.open({
                                                                    type : 2,
                                                                    title : "编辑管理员",
                                                                    content : "Admin_edit?id="+e.data.id,
                                                                    
                                                                    area : [
                                                                            "420px",
                                                                            "420px" ],
                                                                    btn : [ "确定",
                                                                            "取消" ],
                                                                    yes : function(e, t) {
                                                                        /*var l = window["layui-layer-iframe"+ e], 
                                                                        r = "LAY-user-back-submit", 
                                                                        n = t.find("iframe").contents().find("#"+ r);
                                                                                l.layui.form.on("submit("+ r + ")",function(t) {
                                                                                    
                                                                                    
                                                                                                    t.field;
                                                                                                    layer.msg(i);
                                                                                                    console.log("sssssssss");
                                                                                                    i.reload("LAY-user-front-submit"),
                                                                                                    layer.close(e)
                                                                                                }),
                                                                                n.trigger("click");*/
                                                                                var id = parent.layer.getChildFrame('#id').val();
                                                                                var username = parent.layer.getChildFrame('#username').val();
                                                                                var password = parent.layer.getChildFrame('#username').val();
                                                                                alert(username);
                                                                                $.post("Admin_save",{
                                                                                    id:id,
                                                                                    username:username,
                                                                                    password:password
                                                                                }, function(data){
                                                                                        if(data.code==200){
                                                                                            //location.reload();
                                                                                            i.reload('LAY-user-back-manage');
                                                                                            layer.msg("修改成功");
                                                                                            layer.close(e);
                                                                                        }else{
                                                                                            layer.msg("请求失败!");
                                                                                        }
                                                                                        
                                                                                                })
                                                                    },
                                                                    success : function(
                                                                            e, t) {
    
                                                                        
                                                                        
                                                                    }
                                                                })
                                                    }
                                                })
    View Code

    父窗口取值子窗口的方法是 var password = parent.layer.getChildFrame('#username').val(); 

    还有另一种方法:

    ,add: function(){
            layer.open({
              type: 2
              ,title: '添加管理员'
              ,content: 'adminform.jsp'
              ,area: ['420px', '420px']
              ,btn: ['确定', '取消']
              ,yes: function(index, layero){
    
                var body = layer.getChildFrame('body', index);
                var iframeWin = window[layero.find('iframe')[0]['name']];//得到iframe页的窗口对象,执行iframe页的方法:
    var username=iframeWin.document.getElementById("username").value;

    注意index 和 layero  这两个属性,不要打错了,要对应function。

    用这个就可以实现layui js编辑。

  • 相关阅读:
    unsupported jsonb version number 123
    如何在MPlayer上支持RTSP
    TDengine 时序数据库的 ADO.Net Core 提供程序 Maikebing.EntityFrameworkCore.Taos
    如何使用IoTSharp对接ModBus?
    如何从源码启动和编译IoTSharp
    Asp.Net Core 自动适应Windows服务、Linux服务、手动启动时的内容路径的扩展方法
    MQTTnet 的Asp.Net Core 认证事件的扩展
    Asp.Net Core 中利用QuartzHostedService 实现 Quartz 注入依赖 (DI)
    The remote certificate is invalid according to the validation procedure 远程证书验证无效
    settings插拔式源码
  • 原文地址:https://www.cnblogs.com/xyqq/p/12516963.html
Copyright © 2011-2022 走看看