jquery datatable复选框单击以选择一行

时间:2015-06-24 08:47:03

标签: jquery select checkbox datatable row

我的第一列中有jquery datatable个复选框。对于每个复选框,选择/取消选择我想更新数据库中相应行的状态字段。我可以将click事件处理程序附加到复选框。 点击每个复选框,我想

  1. 将包含checked checkbox的行标记为已选中。
  2. 获取与点击的checkbox
  3. 相关联的行数据

    到目前为止我所做的代码:

    $('#newItemBasketTab').dataTable({
        "fnDrawCallback": function( oSettings ) {
           $('.ibchkclass').click(function() 
           {
              updateItemBasket(this);
           });
        },
    
        "aaData": result.itembasketdata,
        "aoColumnDefs":
        [
           {"aTargets": [0],"width": "5%","sClass": "centre_class","mData": "item_basket_id",
            "mRender": function ( data, type, full ){
              var checkedStatus = '';
              if(data != null) { checkedStatus = "checked"; }
              return "<input type='checkbox' class=\"ibchkclass\" id=\"chk_" + full.id1 + "_" + full.id2 + "\" " + checkedStatus + ">";
             }
           },
           {"aTargets": [1],"width": "35%","mData": "name"},
           {"aTargets": [2],"width": "10%","sClass": "price_class", "mData": "prod_quantity"},
           {"aTargets": [3],"width": "10%", "sClass": "price_class", "mData": "prod_value"}
        ]
    });
    
    function updateItemBasket(cb)
    {
        var cbid = cb.id;
        if( $('#'+cbid).is(':checked') == true)
        {
            alert('true');
            //Select respective row
            //Get item_basket_id, prod_quantity and prod_value
        }
        else
        {
    
        }
    }
    

    感谢。

1 个答案:

答案 0 :(得分:1)

使用 closest() $('#'+cbid).closest("tr");,当使用最接近的功能选中复选框时,您可以获取当前的父级

function updateItemBasket(cb)
{
    var cbid = cb.id;
    if( $('#'+cbid).is(':checked') == true)
    {
        alert('true');
       var tr=$('#'+cbid).closest("tr"); // get selected tr
        //Select respective row
        //Get item_basket_id, prod_quantity and prod_value
    }
    else
    {

    }
}