【问题标题】:Need to pass argument to modal dlg from Datatable button action需要从 Datatable 按钮操作将参数传递给模态 dlg
【发布时间】:2016-12-02 12:13:37
【问题描述】:

我确实使用了数据表,其中我已经声明了一些按钮来触发基于用户按下哪个按钮的操作:

var dpcroles = $('#example_roles').DataTable( {
    dom: 'Bfrtip',
    "columnDefs": [
        {
            "targets": [0],
            "visible": false
        }
    ],
    buttons: [
        {
            text: 'Add',
            id: 'btn_add',
            "data-action":'add',
            action: function ( e, dt, node, config ) {
                $('#modal_action').modal();
            }
        },
        {
            id: 'btn_edit',
            text: 'Edit',
            action: function ( e, dt, node, config ) {
                var id = $(e.relatedTarget).data('id');
                console.log(id);
                $('#model_action').modal(id);
            },
            enabled: true
        },

    ],

但是,如何传递处理模态打开的参数 javascript ?

$('#model_action').on('show.bs.modal', function(e) {
    // if button 'edit', do something 
        .
        . 
    // else if button 'add' do other thing 
        .
        .
        .
})

【问题讨论】:

    标签: javascript jquery twitter-bootstrap datatables


    【解决方案1】:

    您可以在调用modal() 方法之前为模式设置data- 属性。例如:

    $('#modal_action').data('mode', 'edit');
    $('#modal_action').modal();
    

    然后在您的事件处理程序中,您可以检索数据。例如:

    $('#modal_action').on('show.bs.modal', function(e) {
        var $modal = $(this);
    
        var mode = $modal.data('mode');
    
        // if button 'edit', do something 
        if(mode === 'edit'){
    
        // else if button 'add' do other thing 
        } else {
    
        }
    });
    

    另一种解决方案是使用两种不同的模态,每个动作一个。

    请注意,您可能拼错了示例中模式的名称,它应该是 modal_actionmodel_action

    【讨论】:

    • 好的,谢谢,它确实有效。谢谢你。上面的代码示例在我清理代码以供公众审查时出现拼写错误。
    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多