jQuery DataTables TableTools Export - get values of checkboxes or radio items

by Rhys

HTML

<script src="//datatables.net/download/build/nightly/jquery.dataTables.js"></script>
<link rel="stylesheet" href="//datatables.net/download/build/nightly/jquery.dataTables.css">
<script src="http://cdn.datatables.net/tabletools/2.2.1/js/dataTables.tableTools.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/zeroclipboard/2.1.5/ZeroClipboard.min.js"></script>
<script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css">
<table class="table table-bordered table-condensed table-hover table-responsive table-striped dataTable has-tickbox" id="sort1" aria-describedby="sort1_info" role="grid">
    <thead>
        <tr role="row">
            <th style="vertical-align: bottom; width: 50%;" class="sorting_asc" tabindex="0" aria-controls="sort1" rowspan="1" colspan="1" aria-sort="ascending" aria-label="Entity: activate to sort column ascending">Entity</th>
            <th class="text-center no-sort sorting_disabled" rowspan="1" colspan="1" aria-label="BH Address">BH Address</th>
            <th class="text-center no-sort sorting_disabled" rowspan="1" colspan="1" aria-label="Incorporated">Incorporated</th>
            <th class="text-center no-sort sorting_disabled" rowspan="1" colspan="1" aria-label="Partnership">Partnership</th>
            <th class="text-center no-sort sorting_disabled" rowspan="1" colspan="1" aria-label="Trust">Trust</th>
            <th class="text-center no-sort sorting_disabled" rowspan="1" colspan="1" aria-label="Trust Deed">Trust Deed</th>
            <th class="text-center no-sort sorting_disabled" rowspan="1" colspan="1" aria-label="PublicAccountant">Public
                <br>Accountant</th>
            <th class="text-center no-sort sorting_disabled" rowspan="1" colspan="1"...

CSS

/*!
 * SmartAdmin - Responsive WebApp
 *
 * Copyright 2014 bootstraphunter.com
 * Designed and built with all the love in the world by @bootstraphunt.
 */
 p {
    margin:0
}
table.table ul li, table.table ol li {
    margin:0 0 0 25px
}
.divMessageBox {
    overflow:auto
}
form table th label {
    font-weight:bold
}
.dataTables-scrollX {
    overflow-x:auto
}
.deleteRow {
    margin-top:20px
}
label.singleLine {
    white-space:nowrap
}
.field-validation-error {
    color:#b94a48
}
.field-validation-valid {
    display:none
}
input.input-validation-error {
    border:1px solid #b94a48
}
input[type="checkbox"].input-validation-error {
    border:0 none
}
.validation-summary-errors {
    color:#b94a48
}
.validation-summary-valid {
    display:none
}
table.no-borders {
    border:0
}
table.no-borders th, table.no-borders td {
    border:none;
    padding:5px
}
table tr th.red, table tr td.red {
    background-color:#fb3c4a !important;
    text-align:center;
    color:#fff !important
}
table tr th.yellow, table tr td.yellow {
    background-color:#ffd800 !important;
    text-align:center
}
table tr th.green, table tr td.green {
    background-color:#41b60f !important;
    text-align:center;
    color:#fff !important
}
table tr th.purple, table tr td.purple {
    background-color:#7d4aff !important;
    text-align:center;
    color:#fff !important
}
table tr th.grey, table tr td.grey {
    background-color:gray !important;
    text-align:center;
    color:#fff !important
}
table.table.services {
    font-size:smaller
}
table.table.services tr th {
    font-weight:normal
}
table.table.services tr th.groupDark {
    background-color:#444 !important;
    color:#fff
}
#extr-page #logo-group span#logo {
    width:auto
}
.smart-style-1 .login-info a span {
    vertical-align:text-bottom
}
@media only screen and (min-width:0) and (max-width:679px) {
    #header-text {
        display:none
    }
}
.onoffswitch-checkbox~.onoffswitch-label .onoffswitch-switch:before,...

JavaScript

var table;
var sortColumn = 0;
$(document).ready(function () {
    //TODO: Get table tools working server-side e.g. https://github.com/ALMMa/datatables.mvc        
	table = $('#sort1').DataTable({
	    stateSave: true,
	    filter: false,
	    "order": [[sortColumn, "asc"]],
	    "pageLength": 25,
	    "columnDefs": [
            {
                "type" : "html",
                "targets": ['no-sort'],
                "orderable": false,
            },
	    ],	 	    
	    "autoWidth": false,
	    "tableTools": {
	        "aButtons": [                
                {
                    "sExtends": "collection",
                    "sButtonText": "Export",
                    "aButtons": ["csv", "xls", "pdf", "print"],
                    // TODO: Get this working.
                    "fnCellRender": function ( sValue, iColumn, nTr, iDataIndex ) {	                    
                        return sValue + " TableTools";
	                }
                }
	        ],
	        "sSwfPath": "http://datatables.net/release-datatables/extras/TableTools/media/swf/copy_csv_xls_pdf.swf"
	    },
	    "initComplete": function (oSettings, json) {
	        $(this).closest('#sort1_wrapper').find('.DTTT.btn-group').addClass('table_tools_group').children('a.btn').each(function () {
	            $(this).addClass('btn-sm btn-default btn-primary');
	        });
	        if ($('td.dataTables_empty')) {
	            $('td.dataTables_empty').parent().hide();
	        }
	        $(this).closest('#sort1_wrapper').addClass('dataTables-scrollX');
	    },
	    // This sets the resulting html layout i.e. https://datatables.net/reference/option/dom	    
	    "dom": "<'dt-toolbar'<'col-xs-12 col-sm-6'fi><'col-sm-6 col-xs-6 hidden-xs'plT>r>" +						
                 't<"dt-toolbar-footer"<"col-sm-6 col-xs-12 hidden-xs"i><"col-xs-12 col-sm-6"p>><"clear">"'	    
	});

	
    // Check all boxes.    
	$('#include').click(function () {
	    if (this.checked) {
	       ...