Я пытаюсь semanti c пользовательский интерфейс и таблицы данных. js и он отлично работает, но у него есть несколько столбцов с раскрывающимся списком, и кажется, что таблицы данных не работают с этими столбцами. Я пробовал поиск по столбцам. Я также попробовал фильтр плагин, но на самом деле он показывает все значения, найденные в опциях к нему. Наверное, поэтому он не работает. Прямо сейчас мой код выглядит следующим образом. Извините за беспорядок, но я перепробовал слишком много вещей, но все тщетно.
$.fn.dataTable.ext.search.push(
function (settings, searchData, index, rowData, counter) {
// console.log(searchData);
// console.log(rowData);
console.log(counter);
// Get global search input val as lower case
var val = $('.dataTables_filter input').val().toLowerCase();
// Return all rows if search is blank
if (val === '') {
return true;
}
// Otherwise if row has Edinburgh return it always
if (searchData[2] === 'Edinburgh') {
return true;
}
// Join row data as string and return it if there is a "Smart" match
var row = searchData.join('').toLowerCase();
if (row.includes(val)) {
return true;
}
return false;
}
);
// var table = $('#leads-table').DataTable();;
var table = $('#leads-table').DataTable( {
initComplete: function () {
this.api().columns().every( function () {
var column = this;
var select = $('<select><option value=""></option></select>')
.appendTo( $(column.footer()).empty() )
.on( 'change', function () {
var val = $.fn.dataTable.util.escapeRegex(
$(this).val()
);
// console.log(val);
// console.log(column.search(val).draw());
column
.search( val ? '^'+val+'$' : '', true, false )
.draw();
} );
column.data().unique().sort().each( function ( d, j ) {
if( d.includes("dropdown") ){
value = $('input[type="hidden"]', d).val();
text = $('.text', d).text().trim();
// console.log(text);
select.append( '<option value="'+text+'">'+ text +'</option>' );
}
} );
} );
}
} );
// Trun off the Datatables event and use our own
$('.dataTables_filter input')
.off()
.on('keyup', function() {
// Draw the table to execute the search plugin
table.draw();
});