2016-12-02 49 views
1

DLG莫代尔我使用的数据表在那里我已经宣布了一些按钮来触发行动为基础的哪个按钮用户按:需要传递的参数,从数据表按钮动作

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 
     . 
     . 
     . 
}) 

回答

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

+0

好的,谢谢,它确实有效。谢谢。以上代码示例在我清理代码进行公开审查时发生了拼写错误。 –

相关问题