Akshay
Akshay

Reputation: 1472

checkbox click event with jquery datatables not working

I have used jQuery Datatables https://datatables.net/ for my grids. There are two grids, each has a checkbox in the grid. I need to generate an event when checkbox is checked/unchecked.

I have tried this but it doesn't work. Please let me know what I am doing wrong here..........

  $(document).ready(function () {
            $('.cBSAGrid tr td').click(function (event) {
                alert('0'); 
            });
        });

and

 $(document).ready(function () {
            $('#BSAGrid tr').click(function (event) {
                alert('0'); 
            });
        });

My datatable jquery

$.ajax({
                type: "POST",
                url: "/BSA/BSAExceptionGrid",
                data: '{ policynumber: "' + txtpolicy.val() + '",clientname:"' + clientname.val() + '" }',
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (response) {
                    div.css("display", "none"); 

                    $('#BSAGrid').DataTable({
                        paging: false,
                        searching: false,
                        destroy: true,
                        "bInfo" : false,
                        data: response,
                        columns: [
                            { "data": "Logged_ID" },
                            { "data": "Logged_ID" }, 
                            { "data": "CustomerName" },
                            { "data": "ClientType" }                           

                        ], 
                        aoColumnDefs: [
                        {
                            aTargets: [0],    // Column number which needs to be modified
                            mRender: function (o, v) {   // o, v contains the object and value for the column
                                return '<input type="checkbox" id="chkBSA" name="chkBSA" />';
                            }
                            //,sClass: 'tableCell'       // Optional - class to be applied to this table cell
                        }
                        ,
                         {
                             aTargets: [1],
                             visible: false
                         }
                        ],
                        select: {
                            style: 'os',
                            selector: 'td:first-child'
                        },
                        order: [[1, 'asc']]

                    });

                },
                failure: function (response) {
                    alert(response);
                },
                error: function (response) {
                    alert(response.responseText);
                }
            }); 

HTML

  <div id="BSAGridContainer" style="display:none;">  
       <table id="BSAGrid" class="cBSAGrid table table-responsive">
            <thead>
                <tr> 
                    <th></th>
                    <th >Logged_ID</th> 
                    <th>Client Name</th>
                    <th>Client Type</th>
                </tr>
            </thead> 
        </table> 
    </div>

Upvotes: 1

Views: 3500

Answers (3)

Aman
Aman

Reputation: 11

If you're using bootstrap 4 custom-checkbox then add a class into your checkbox

.className {left: 0;z-index: 1;width: 1.25rem;height: 1.25rem;}

Upvotes: 0

Mauri
Mauri

Reputation: 247

You could include the onChange event listener in the same column adding this into your column return text onChange="gridCheckboxChange(this);"

Upvotes: 0

Ali Imran
Ali Imran

Reputation: 686

Try bellow code:

$(document).ready(function(){
$(document).on("change", "#chkBSA", function() {
alert('click')
});
});

Upvotes: 3

Related Questions