Layui-跳转传参、父子页面

  • 使用parent.xadmin.add_tab()方法打开新的标签页

重点是这个parent,折磨了我一下午,原来是没有搞清应该从父页面打开。最开始的xadmin.add_tab()是用在左边菜单上的,点击就会增加新的标签页,这个才是父页面。
使用X-admin(Layui)前端框架,在打开新Tab页面内刷新其他Tab页面解决方案(表单数据多可以使用open弹框全屏)

使用X-admin(Layui)前端框架,从数据列表页点击弹框(open)的添加页面,然后添加成功关闭弹框且刷新列表页,这种情况比较常见代码如下:

// 获得frame索引
  var index = parent.layer.getFrameIndex(window.name);
 //关闭当前frame
  parent.layer.close(index);
 window.parent.location.reload();

如果是添加页面的字段很多,打开新的Tab页面的话,就不能使用以上代码,我的解决方案是代码如下:
————————————————
版权声明:本文为CSDN博主「似水往昔浮流年 ♚」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qiaoshuai0920/article/details/103414005

//重新调用打开list页面,并且刷新。 
parent.xadmin.add_tab('列表','list.action',true);
//关闭当前tab页面 必须后关闭。
 xadmin.del_tab();
  • 前一个页面的检查语句可能会使后一个页面提交失败,并返回到前一页面

这个bug隐藏地非常深,我一开始写了新增合同页面,通过“下一步”的按钮跳转到添加合同条款的页面,结果可以跳转,合同编号也传递正确了,但是条款信息提交时却又返回到了上一页面。
因为某种机缘巧合而发现了原来是新增合同页面的form检查语句form.verify{}不让我提交……至于原因,可能是我把不该写的东西写在了form.verify{}里吧……改得太快,没注意具体原因。

  • 使用layui的layer.open打开页面并传入参数

layui 打开新页面,并传入参数


下面这篇也是差不多的道理,拼接url实现layer.open
layui+springboot+thymeleaf 动态传参

  • 使用layui的form进行ajax提交操作时必须return false防止表单跳转

我的理解是如果不return false,传的参数会被页面自动刷新掉。
Layui form表单提交注意事项

最后return false防止页面刷(form表单提交后如果请求原来的页面尾后没有参数?id=之类的参数请求,可以不返回false)),
http://localhost:8080/jump/jumpToPages?flag=5请求原页面大有参数,必须返回false,不然页面获取不到参数 报错

// 表单提交
form.on('submit(first1)', function (data) {
    var articleFrom = data.field;
    $.ajax({
        type:"POST",
        url:"/user/upDate",
        data:articleFrom,
        dataType:"JSON",
        success:function (data) {
            if(data.flag){
                layer.closeAll();
            }
        }
    });
    return false;
});
  • 实现上一步与下一步

如何在表单里面做上一步跟下一步

Q:弹窗弹出一个表单,然后点击下一步的时候再弹出来一个表单 然后点击提交的时候再把所有内容都提交给后台,如何实现?
A:你的弹出层里面可以放两个表单,先隐藏第二个表单,点击下一步的时候在隐藏第一个显示第二个,这中间可以layer.load几秒后再出现,再一起把表单提交。
实在想用两次弹出层来实现也行,点击下一步的时候layer.getChildFrame('body', index)把第一个表单赋给一个变量,弹出第二个表单,同样获取表单值一起提交就行了。

提交form表单后,页面的跳转和刷新问题

Q:在提交表单后,给出提交成功信息,然后怎么关闭当前表单页面,跳转到并刷新列表页面。怎么让新添加的数据显示在列表页面的首行。
A:
1.关闭页面
如果你是使用 layui.open 打开的新页面可以参考 https://www.layui.com/doc/modules/layer.html#layer.close
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
parent.layer.close(index); //再执行关闭
2.关闭当前页,刷新父页面
window.parent.location.href = url (可以试试这个)
3.至于添加的数据显示在最前面,这个需要后台去处理,按照新增时间倒序或者是排序号排序都可以的。

你可能感兴趣的:(Layui-跳转传参、父子页面)