点击按钮打开子页面,实现父子页面相互传值,再次点击回显子页面保存的数据

效果图(登录为保存的意思)

1.点击按钮打开子页面 js代码(打开页面如果隐藏域有值就回显在子页面上)

/**
 * 打开银行信息页面
 * */
InputInfoDlg.openAddBankInfo = function () {

    var bankArr = [];
    var bankjsonstr = $('#bankinfo').val();
    if(bankjsonstr == ""){
        bankArr = [];
    }else{
        bankArr =JSON.parse(bankjsonstr);
    }
    
    var index = layer.open({
        type: 2,
        title: '銀行情報を入力します',
        area: ['800px', '400px'], //宽高
        fix: false, //不固定
        maxmin: true,
        shadeClose: true,
        content: Feng.ctxPath + '/input/bank_info',
        success: function (layero, index) {
            // 获取子页面的iframe
            var iframe = window['layui-layer-iframe' + index];
            // 向子页面的全局函数child传参
            iframe.child(bankArr);
        }

    });
     this.layerIndex = index;
};

2.打开子页面对应Controller

@Controller
@RequestMapping("/input")
public class PublishProductKeyController extends BaseController {
    private String PREFIX = "/system/input/";
    @RequestMapping(value = "/bank_info",method = RequestMethod.GET)
    public String bankInfo() {
       return PREFIX + "bank_info.html";
    }
}

 3.子页面保存数据向父页面传值(向父页面隐藏域设置值)

/**
 * 保存银行信息
 * */
var bankInfo = [];

InputInfoDlg.saveBankInfo =function(){
    if (!this.validate2()) {
        return;
    }
    bankInfo.push({
        "bankType" : $('input[name="inlineRadioOptions"]:checked ').val(),
        "accountAlias" :$("#accountAlias").val(),
        "accountName" :$("#accountName").val(),
        "bankName" :$("#bankName").val(),
        "bankNum" :$("#bankNum").val(),
        "branchName" :$("#branchName").val(),
        "branchNum" :$("#branchNum").val(),
        "depositType" :$('input[name="inlineRadioOptions2"]:checked ').val(),
        "account" :$("#account").val(),
        "tips" :$("#tips").val()
    });
    var str=JSON.stringify(bankInfo);
    //父页面隐藏域 设置值
    parent.$('#bankinfo').val(str);
    parent.$('#makeLicense')[0].disabled = false;
    parent.layer.close(window.parent.InputInfoDlg.layerIndex);

};

4.子页面获取值,回显数据

对应第一步里 success 回调函数里的   iframe.child(bankArr);

  success: function (layero, index) {
            // 获取子页面的iframe
            var iframe = window['layui-layer-iframe' + index];
            // 向子页面的全局函数child传参
            iframe.child(bankArr);
        }

回显代码 写在子页面html 最下方,加载页面即调用 

<script>
	function child(data) {
		$("input[name='inlineRadioOptions'][value="+data[0].bankType+"]").attr("checked",true);
		$("input[name='inlineRadioOptions2'][value="+data[0].depositType+"]").attr("checked",true);
		$("input[name='accountName']").val(data[0].accountName);
		$("input[name='accountAlias']").val(data[0].accountAlias);
		$("input[name='bankName']").val(data[0].bankName);
		$("input[name='bankNum']").val(data[0].bankNum);
		$("input[name='branchName']").val(data[0].branchName);
		$("input[name='branchNum']").val(data[0].branchNum);
		$("input[name='account']").val(data[0].account);
		$("input[name='tips']").val(data[0].tips);

		if (data[0].bankType == 1) {
			document.getElementById("bankName").setAttribute("disabled", true);
			document.getElementById("bankNum").setAttribute("disabled", true);
			document.getElementById("branchName").setAttribute("disabled", true);

		}

	}
</script>

 

好的,以下是使用 layui 编写表格编辑页面数据回显的示例代码: ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Layui表格编辑页面数据回显示例</title> <link rel="stylesheet" href="https://cdn.staticfile.org/layui/2.5.6/css/layui.min.css"> </head> <body> <div class="layui-container"> <div class="layui-row"> <div class="layui-col-md8 layui-col-md-offset2"> <table class="layui-hide" id="test" lay-filter="test"></table> <script type="text/html" id="barDemo"> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">编辑</a> <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a> </script> </div> </div> </div> <script src="https://cdn.staticfile.org/layui/2.5.6/layui.min.js"></script> <script> layui.use(['table', 'form'], function(){ var table = layui.table ,form = layui.form; //第一个实例 table.render({ elem: '#test' ,url: '/demo/table/user/' //数据接口 ,page: true //开启分页 ,cols: [[ //表头 {field: 'id', title: 'ID', width:80, sort: true, fixed: 'left'} ,{field: 'username', title: '用户名', width:80} ,{field: 'sex', title: '性别', width:80, sort: true} ,{field: 'city', title: '城市', width:80} ,{field: 'sign', title: '签名', width: 177} ,{field: 'experience', title: '积分', width: 80, sort: true} ,{field: 'score', title: '评分', width: 80, sort: true} ,{field: 'classify', title: '职业', width: 80} ,{field: 'wealth', title: '财富', width: 135, sort: true} ,{fixed: 'right', title:'操作', toolbar: '#barDemo', width:150} ]] }); //监听工具条 table.on('tool(test)', function(obj){ var data = obj.data; if(obj.event === 'edit'){ layer.alert('编辑行:<br>'+ JSON.stringify(data)) } else if(obj.event === 'del'){ layer.confirm('真的删除行么', function(index){ obj.del(); layer.close(index); }); } }); }); </script> </body> </html> ``` 希望能对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值