<!DOCTYPE html>
<html>
  <head>
    <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
    <link href="https://nightly.datatables.net/css/jquery.dataTables.css" rel="stylesheet" type="text/css" />
    <script src="https://nightly.datatables.net/js/jquery.dataTables.js"></script>
    <meta charset=utf-8 />
    <title>DataTables - JS Bin</title>
  </head>
  <body>
    <div class="container">
      <input id="state" type="button" value="Check State">
      <table id="example" class="display nowrap" width="100%">
        <thead>
        <tr>
            <th>Name</th>
            <th>Activated</th>
            <th></td>
          </tr>
        <tr>
            <th>Name</th>
            <th>Activated</th>
            <th></td>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>Tiger Nixon</td>
            <td><input class='activateCheck' type='checkbox' name='activateCheck' value='1' checked></td>
            <td><input type='button' class='updateButton' value='Update'></td>
          </tr>
          <tr>
            <td>Garrett Winters</td>
            <td><input class='activateCheck' type='checkbox' name='activateCheck' value='1'></td>
            <td><input type='button' class='updateButton' value='Update'></td>
          </tr>
        </tbody>
      </table>
    </div>
  </body>
</html>
 
body {
  font: 90%/1.45em "Helvetica Neue", HelveticaNeue, Verdana, Arial, Helvetica, sans-serif;
  margin: 0;
  padding: 0;
  color: #333;
  background-color: #fff;
}
 
$(document).ready(function() {
    // Setup - add a text input to each footer cell
    $('#example thead tr:eq(1) th').each( function () {
        var title = $(this).text();
        $(this).html( '<input type="text" placeholder="Search '+title+'" class="column_search" />' );
    } );
 
    // DataTable
    var table = $('#example').DataTable({
      pageLength: 1,
      "columns": [
                { "data": "Name" },
                { "data": "activateCheck" },
                { "data": "button" }
        
            ],
      orderCellsTop: true
    
    });
 
// Apply the search
    $( '#example thead'  ).on( 'keyup', ".column_search",function () {
   
        table
            .column( $(this).parent().index() )
            .search( this.value )
            .draw();
    } );
  
  
  
  
  
  $('body').off('click').on('click', '.updateButton',function()   {
        var currentRow = $(this).closest('tr');
        var currentCheckbox = currentRow.find('.activateCheck');
        console.log('HTML checkbox: ' + currentCheckbox.is(':checked'));
        
        var row = table.row(currentRow);
    
        var data = row.data();  //get row data
    
        DTcheckbox = $(data.activateCheck);  //get checkbox
        
        //set chekcbox data true/false based on HTML checkbox
        DTcheckbox.prop('checked', currentCheckbox.is(':checked'));
    
        //update Datatables data.activateCheck for the row
        data.activateCheck = DTcheckbox;
        console.log('DT checkbox: ' + data.activateCheck.is(':checked'));
    
        
 
        //row.invalidate().draw();
    
        //var isChecked = $($.parseHTML( row.data()['activateCheck'] )).is(':checked') ? 1 : 0;
        //console.log('isChecked:' + isChecked);
    
   });
  
  
  $('#state').click(function(){
    
    //loop every row
    table.rows().every( function ( rowIdx, tableLoop, rowLoop ) {
      var d = this.data();
      console.log(d.Name + ' checked state: ' + $(d.activateCheck).is(':checked'));
} );
});  
  
} );
Output

This bin was created anonymously and its free preview time has expired. Get a free unrestricted account

Dismiss x
public
Bin info
anonymouspro
0viewers