Utilicé el siguiente código para completar una tabla con filtros de selección múltiple en cada columna y funciona bien: ejemplo de tabla de filtros de columnas de selección múltiple
$(document).ready(function() { $('#example').DataTable({ initComplete: function() { this.api().columns().every(function() { var column = this; //added class "mymsel" var select = $('<select class="mymsel" multiple="multiple"><option value=""></option></select>') .appendTo($(column.footer()).empty()) .on('change', function() { var vals = $('option:selected', this).map(function(index, element) { return $.fn.dataTable.util.escapeRegex($(element).val()); }).toArray().join('|'); column .search(vals.length > 0 ? '^(' + vals + ')$' : '', true, false) .draw(); }); column.data().unique().sort().each(function(d, j) { select.append('<option value="' + d + '">' + d + '</option>') }); }); //select2 init for .mymsel class $(".mymsel").select2(); }}); });
Sin embargo, cuando selecciono un valor en un filtro de columna aleatoria, los otros filtros ofrecen la lista de todos los valores posibles en lugar de los distintos según el filtro anterior.
Hay alguna forma de hacer esto ?