热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

layui两个html传值,Layui跳转传参、父子页面

使用parent.xadmin.add_tab()方法打开新的标签页重点是这个parent,折磨了我一下午,原来是没有搞清应该从父页面打开。最开始的xa

使用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.use(['jquery','form','layer'], function(){

var $ = layui.jquery,

layer = layui.layer,

form = layui.form;

///预览

$('#preview').on('click',function() {

var w = ($(window).width() * 0.7);

var h = ($(window).height() - 50);

layer.open({

resize: false,

title: '预览',

shadeClose: true,

area: [w + 'px', h + 'px'],

type: 2,

content: '/common/html/preview.html',

success: function (layero, index) {

var body = layer.getChildFrame('body', index);

body.find('#content').append(editor.txt.html());

}

});

});

});

使用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)把第一个表单赋给一个变量,弹出第二个表单,同样获取表单值一起提交就行了。

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.至于添加的数据显示在最前面,这个需要后台去处理,按照新增时间倒序或者是排序号排序都可以的。



推荐阅读
author-avatar
kiki百乐门_867
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有