<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'));
} );
});
} );
This bin was created anonymously and its free preview time has expired. Get a free unrestricted account
Dismiss xShortcut | Action |
---|---|
ctrl + [num] | Toggle nth panel |
ctrl + 0 | Close focused panel |
ctrl + enter | Re-render output. If console visible: run JS in console |
Ctrl + l | Clear the console |
ctrl + / | Toggle comment on selected lines |
ctrl + [ | Indents selected lines |
ctrl + ] | Unindents selected lines |
tab | Code complete & Emmet expand |
ctrl + s | Save & lock current Bin from further changes |
ctrl + shift + s | Clone Bin |
ctrl + y | Archive Bin |
Complete list of JS Bin shortcuts |
URL | Action |
---|---|
/ | Show the full rendered output. This content will update in real time as it's updated from the /edit url. |
/edit | Edit the current bin |
/watch | Follow a Code Casting session |
/embed | Create an embeddable version of the bin |
/latest | Load the very latest bin (/latest goes in place of the revision) |
/[username]/last | View the last edited bin for this user |
/[username]/last/edit | Edit the last edited bin for this user |
/[username]/last/watch | Follow the Code Casting session for the latest bin for this user |
/quiet | Remove analytics and edit button from rendered output |
.js | Load only the JavaScript for a bin |
.css | Load only the CSS for a bin |
Except for username prefixed urls, the url may start with http://jsbin.com/abc and the url fragments can be added to the url to view it differently. |