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编辑。

  • 相关阅读:
    JAVA中获取路径
    maven 更换阿里镜像、设置本地仓库路径
    Cannot construct instance of `com.jty.entities.Dept` (no Creators, like default construct, exist): cannot deserialize from Object value (no delegate or propertybased Creator)
    oracle日期正则表达式
    linux配置jdk
    4月份健身计划
    刚才上了ednchina的blog,发现改版了。竟然登陆不上了
    ②这次将stm32的PC13作为普通i/o口驱动led,不知道能否发生网上提到的现象
    最近画的两块板子。
    RDS的板子推倒重画
  • 原文地址:https://www.cnblogs.com/xyqq/p/12516963.html
Copyright © 2011-2022 走看看