代码之家  ›  专栏  ›  技术社区  ›  Shantanu Gupta

基于DataTable中的另一个下拉选择动态创建输入/下拉列表,并向其添加事件侦听器-jquery

  •  0
  • Shantanu Gupta  · 技术社区  · 4 年前

    如果数据源选择是FreeText else render Dropdown,我想创建渲染输入字段。我也想绑起来 onchange

    寻求帮助

    • onchange公司 使用时下拉事件 DataTable columns
    • creating/destroying
    • reusable .
    • 如何使用这些下拉列表 same event handler
    var dataSource = [
        ["", "Select One"],
        ["ft", "Free Text"],
        ["ds", "Data Source"]
    ];
    
    var mappingTable = $('#mappingTable').DataTable({
        "data": tf,
        columns: [
            { data: null, title: "Merge Field", render: "fi" },
            {
                data: null, title: "Data Source",
                "render": (d, t, r) =>{
                    var $select = $("<select/>", {
                        id: r.fi + "_t"
                    });
    
                    $.each(dataSource, (k, v) =>{
                        var $option = $("<option></option>", {
                            "text": v[1],
                            "value": v[0]
                        });
                        if (r["t"] === v[0]) {
                            $option.attr("selected", "selected")
                        }
                        $select.append($option);
                    });
                    return $select.prop("outerHTML");
                }
            },
            {
                data: null, title: "Mapping",
                "render":  (d, t, r) =>{
                    var $select = $("<select/>", {
                        "id": r.fi + "_v" //d
                    });
                    $.each(this.keys, (k, v) =>{
                        var $option = $("<option></option>", {
                            "text": v,
                            "value": v
                        });
                        if (r["v"] === v) {
                            $option.attr("selected", "selected")
                        }
                        $select.append($option);
                    });
                    return $select.prop("outerHTML");
                }
            }
    
        ]
    }
    );
    
    0 回复  |  直到 4 年前