zoukankan      html  css  js  c++  java
  • 使用layer的iframe层提交表单后,需要关闭当前的iframe层,然后刷新父页面的方法

    参考文档 :https://blog.csdn.net/u011020900/article/details/52083166

      
     <script type="text/javascript" src="/lib/js/jquery.js"></script>
        <script type="text/javascript" src="/lib/layui/layui.js"></script>
    

      

    <input type="button" class="layui-btn layui-btn-radius layui-btn-primary"
    onclick="edit(${it.id})" value="编辑">

        /**
    * 编辑
    * @param resId
    */
    function edit(resId) {
    //iframe层
    layer.open({
    type: 2,
    title: '编辑服务资源',
    shadeClose: true,
    shade: 0.8,
    area: ['800px', '600px'],
    content: '/resource/editResourceById?resId=' + resId //iframe的url
    });
    }


    @RequestMapping(value = "/editResourceById", method = RequestMethod.GET)
    public ModelAndView editResourceById(@RequestParam(value = "resId", required = true) Integer resId) {
    ModelAndView modelAndView = new ModelAndView();
    Resource resource = resourceService.getResourceById(resId);
    modelAndView.addObject("info", resource);
    modelAndView.setViewName("resource/editResourceById");
    return modelAndView;

    }





    <body class="layui-layout-body">
    <form id="editResForm" class="layui-form" method="post" action="#">
    <div class="layui-form-item ">
    <label class="layui-form-label">项目编号</label>
    <div class="layui-input-block">
    <input type="hidden" name="id" value="${info.id}">
    <input type="text" name="resNo" disabled placeholder="请输入项目编号"
    value="${info.resNo!}"
    autocomplete="off" class="layui-input">
    </div>
    </div>
    <div class="layui-form-item">
    <label class="layui-form-label">项目名称</label>
    <div class="layui-input-block">
    <input type="text" name="resName" placeholder="请输入项目名称"
    value="${info.resName!}"
    autocomplete="off" class="layui-input">
    </div>
    </div>
    <div class="layui-form-item">
    <label class="layui-form-label">资源类型</label>
    <div class="layui-input-block">

    <input type="button" class="layui-btn layui-btn-primary"
    autocomplete="off" class="layui-input" value="服务资源">
    <input type="hidden" name="resType" value="103">

    </div>
    </div>
    <div class="layui-form-item layui-form-text">
    <label class="layui-form-label">项目素材图</label>
    <div class="layui-input-block">
    <button type="button" class="layui-btn" name="resPicPath" id="resPicPath">
    <i class="layui-icon">&#xe67c;</i>上传图片
    </button>
    </div>
    </div>

    <div class="layui-form-item layui-form-text kindeditor">
    <label class="layui-form-label">资源描述</label>
    <div class="layui-input-block">
    <textarea name="resDesc" placeholder="请输入内容" class="layui-textarea">${info.resDesc!}</textarea>
    </div>
    </div>
    <div class="layui-form-item layui-form-text kindeditor">
    <label class="layui-form-label">申请日期</label>
    <div class="layui-inline">
    <input type="text" class="layui-input" value="${(info.addTime?string('yyyy-MM-dd'))!}" name="addTime"
    id="addTime">
    </div>
    </div>
    <div class="layui-form-item layui-form-text kindeditor">
    <label class="layui-form-label">截止日期</label>
    <div class="layui-inline">
    <input type="text" class="layui-input" name="expiresDate" id="expiresDate">
    </div>
    </div>

    <div class="layui-form-item">
    <div class="layui-input-block">
    <input type="submit" class="layui-btn" value="提交">
    <button type="reset" class="layui-btn layui-btn-primary">重置</button>
    </div>
    </div>
    </form>
    <script>

    layui.use('layer', function () {
    var layer = layui.layer;
    // 这个是在iframe里面的js代码
    var url = '/resource/saveEditResource';
    var frameindex = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
    $(document).on('click', '[type=submit]', function () {
    var index = layer.load(1, {
    shade: [0.1, '#fff'] //0.1透明度的白色背景
    });
    var data = $("#editResForm").serialize();
    $.post(url, data, function (ev) {
    if (ev.code == 200) {
    layer.msg(ev.msg);
    parent.location.href = "/resource/getResourceList?resType=103";
    } else {
    layer.close(index);
    layer.msg(ev.msg);
    }
    }, 'json')
    return false;
    });

    })

    // 时间插件
    layui.use('laydate', function () {
    var laydate = layui.laydate;

    //执行一个laydate实例
    laydate.render({
    elem: '#expiresDate' //指定元素
    });
    });
    layui.use('laydate', function () {
    var laydate = layui.laydate;

    //执行一个laydate实例
    laydate.render({
    elem: '#addTime' //指定元素
    });
    });

    @RequestMapping(value = "/saveEditResource", method = RequestMethod.POST)
    @ResponseBody
    public Map saveEditResource(Resource Resource) {
    boolean flag = resourceService.saveEditResource(Resource);
    Map map = new HashMap();
    if (flag) {
    map.put("code", 200);
    map.put("msg", "更改成功");
    } else {
    map.put("code", "500");
    map.put("msg", "更改失败,代码错误");
    }
    return map;
    }

    /**
    * 获取资源列表
    *
    * @param resType
    * @return
    */
    @RequestMapping(value = "/getResourceList", method = RequestMethod.GET)
    public ModelAndView getResourceList(@RequestParam(value = "resType", required = true) Integer resType) {
    ModelAndView model = new ModelAndView();
    List<Resource> resourceList = resourceService.getResourceList(resType);
    model.addObject("resourceList", resourceList);
    if (101 == resType) { // 跳转到 广告 资源列表
    model.setViewName("account/reslist");
    } else if (102 == resType) { // 跳转到 云 资源列表

    } else if (103 == resType) { // 跳转到 服务 资源列表
    model.setViewName("resource/getResourceList");
    }
    return model;
    }
  • 相关阅读:
    阿里云CDN缓存加速学习总结
    阿里云SLB学习总结
    zabbix3.2安装
    drf中的增删改查接口
    drf中二次封装Response
    drf常用模块
    Django—auth模块
    csrf跨站请求伪造与CBV装饰器
    Django—cookie与session
    Django—中间件(待更新)
  • 原文地址:https://www.cnblogs.com/jwlfpzj/p/9159031.html
Copyright © 2011-2022 走看看