Добро пожаловать, у меня возникают проблемы с добавлением обновлений фильтра в DataTables.
В этом примере это прекрасно работает: http://live.datatables.net/gejojiqu/1/edit
Когда ядобавьте эту строку, это не работает для меня:
// The rebuild will clear the exisiting select, so it needs to be repopulated
var currSearch = column.search();
if ( currSearch ) {
select.val( currSearch.substring(1, currSearch.length-1) );
}
Мой код выглядит так:
$(document).ready(function () {
$('#projects-table').DataTable({
"order": [[ 0, "desc" ]],
"sDom": '<"top">rt<"bottom"p><"clear">',
stateSave: true,
initComplete: function () {
this.api().columns([0, 1, 2]).every(function () {
var column = this;
var filtry = $('#projects-filters');
var th = $("#projects-headers").find("th").eq(column.index());
var select = $('<select id="' + th.text().replace(/[^a-z0-9\s]/gi, '').replace(/[_\s]/g, '') + '" class="custom-select"><option value="">' + th.text() + '</option></select>')
.appendTo($(filtry))
.on('change', function () {
var val = $.fn.dataTable.util.escapeRegex(
$(this).val());
column.search(val ? '^' + val + '$' : '', true, false)
.draw();
});
column.data().unique().sort().each(function(d, j) {
var val = $.fn.dataTable.util.escapeRegex(d);
if (column.search() === "^" + val + "$") {
select.append(
'<option value="' + d + '" selected="selected">' + d + "</option>"
);
} else {
select.append('<option value="' + d + '">' + d + "</option>");
}
});
});
}
});
});
У кого-нибудь есть какие-нибудь идеи?