1、項目中用到layer 彈出層,定義一個公用的窗口,問題來了窗口彈出來了,如何保存頁面上的數據呢?瘋狂百度之后,有了結果,趕緊記下。
2、自己定義的公共頁面方法:
layuiWindow: function (options) { var defaults = { title: '添加菜單', width: '100px', height: '100px', url: '', shade: 0.3, btn: ['確認', '關閉'], btnclass: ['btn btn-primary', 'btn btn-danger'], callBack:null }; var options = $.extend(defaults,options); alert(options.width+"=+="+ options.height); //頁面層 layer.open({ type: 2, title: options.title, //skin: 'layui-layer-rim', //加上邊框 area: [options.width, options.height], //寬高 content: options.url, btn: options.btn, //只是為了演示 yes: function(){ options.callBack(); }, btn2: function(){ layer.close(); } }); }
3、父頁面:
$.layuiWindow({ title: "菜單新增", url: "/SysMenu/Form?Id=" + id + "&Name=" + name, width: '400px', height: '300px', callBack: function () { //top.frames["Form"].submitForm(); //$(la).find("iframe")[0].contentWindow.submitForm(); window["layui-layer-iframe1"].submitForm(); //這里是重點,趕緊圈起來這里一定會用到。 } });
4、子頁面方法:
//保存數據 function submitForm() { var parentId = $("#parentId").val(); var childrenNode = $("#txtChildren").val(); var path = $("#txtPath").val(); $.ajax({ url: "/SysMenu/Insert", data: { parentId: parentId, name: childrenNode, menuPath: path }, dataType: "json", type: "post", success: function (req) { alert("req" + req); }, error: function (err) { alert("err"+err); } }); }