thinkphp5实现弹出框(下拉框选项动态赋值)

效果图

原理

先执行接口获取动态数据,然后在 layer.open的success回调函数中动态添加html代码片段,通过如下方法,将动态生成的代码插入指定的div中,实现动态赋值的效果。

javascript 复制代码
// 动态获取的数据
var data = ......;

// 弹出框配置
layer.open({
    // 弹出层加载成功后的回调函数
    success: function(layero, index) {

        var html_string;

        // for循环添加代码
        for(var i = 0, len = data.length; i < len; i++) {
                var option = ......;
                html_string += option;
        }

        // 将动态获取的下拉框数据,插入到弹出层的指定div内容中
        // div的id        html代码字符串
        $('#div-id').html(html_string);

    }
})

实现

javascript 复制代码
// 先执行获取数据的接口,然后将结果赋值
var data = res.data;

// 设置layer.open弹出框的配置
var change_modal = layer.open({
        // 标题
        title:'更改为转账到银行卡方式',
        // 内容(你也可以写个html文件,嵌入就好,我懒,就直接写进入了)
        content: 
            '<form>' +
                '<div>' +
                '   <label>开户行</label>' +
                '   <div><input type="text" id="bank_name" placeholder="请输入开户行"></div>' +
                '</div>' +
                '<div>' +
                '   <label>持卡人</label>' +
                '   <div><input type="text" id="bank_user" placeholder="请输入持卡人"></div>' +
                '</div>' +
                '<div>' +
                '   <label>卡号</label>' +
                '   <div><input type="text" id="bank_no" placeholder="请输入卡号"></div>' +
                '</div>' +
                '<div>' +
                '   <label>退款餐厅</label>' +
                '   <div id="defct-div"></div>' +
                '</div>' +
            '</form>',
        // 按钮集合
        btn: ['确定提交'],
        // 弹出层加载成功后的回调函数(关键!!!)
        success: function(layero, index) {
            var html = '<select id="defct"><option value="">请选择</option>';

            // for循环生成html片段
            for(var i = 0, len = defctList.length; i < len; i++) {
                var option = '<option value="' + defctList[i].id + '">' + defctList[i].name + '</option>';
                html += option;
            }
            html += '</select>';

            // 将下拉框数据插入到弹出层的内容中(核心关键代码!!!!)
            $('#defct-div').html(html);
        },
        // 第一个按钮的点击事件
        btn1:function(){
            // 实现加载效果
            var loading = layer.load()
            // 结束加载效果
            layer.close(loading)
            // 弹出提示信息
            layer.msg(data.msg)
            // 关闭本弹出框
            layer.close(change_modal)
        }
    });
相关推荐
我要洋人死15 分钟前
导航栏及下拉菜单的实现
前端·css·css3
科技探秘人26 分钟前
Chrome与火狐哪个浏览器的隐私追踪功能更好
前端·chrome
科技探秘人27 分钟前
Chrome与傲游浏览器性能与功能的深度对比
前端·chrome
JerryXZR32 分钟前
前端开发中ES6的技术细节二
前端·javascript·es6
七星静香34 分钟前
laravel chunkById 分块查询 使用时的问题
java·前端·laravel
q24985969337 分钟前
前端预览word、excel、ppt
前端·word·excel
小华同学ai42 分钟前
wflow-web:开源啦 ,高仿钉钉、飞书、企业微信的审批流程设计器,轻松打造属于你的工作流设计器
前端·钉钉·飞书
Gavin_9151 小时前
【JavaScript】模块化开发
前端·javascript·vue.js
懒大王爱吃狼2 小时前
Python教程:python枚举类定义和使用
开发语言·前端·javascript·python·python基础·python编程·python书籍
逐·風6 小时前
unity关于自定义渲染、内存管理、性能调优、复杂物理模拟、并行计算以及插件开发
前端·unity·c#