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編輯。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM