我需要制作自定义过滤器,并且我在datatable中使用特殊功能,并进行过滤,但是当我查看我进行过滤的请求时,发送到过滤器的值始终为空。
我的代码:
jQuery(document).ready(function() {
var table = jQuery('#example2').DataTable();
jQuery("#segment").on("change", function(e) {
var segment = jQuery('#segment').select2('data').text;
table.draw();
} );
我使用它来推送值,我从这里得到任何东西,即使在console.log中
//filter push
jQuery.fn.dataTableExt.afnFiltering.push(
function( oSettings, aData, iDataIndex ) {
//main filter
var segment = jQuery('#segment').select2('data').text;
var marke = jQuery('#model').select2('data').text;
console.log(segment);
if( aData[1]== segment ||
aData[3]== marke )
{
return true;
}
return false;
}
);
答案 0 :(得分:0)
您只需要返回true
或false
即可使过滤器正常工作。您可以获取当前正在执行的segment
和marke
的值。只需测试他们实际上正在检索值console.log(segment, marke)
或alert(segment, marke)
只要您获得正确的值,所有内容都应该正常工作。也许展示你的HTML。
jQuery(document).ready(function() {
var table = jQuery('#example2').DataTable();
jQuery("#segment").on("change", function(e) {
// You do not need this as filter is run on a new table.draw();
// var segment = jQuery('#segment').select2('data').text;
table.draw();
} );
//filter push
jQuery.fn.dataTableExt.afnFiltering.push(
function( oSettings, aData, iDataIndex ) {
//main filter
var segment = jQuery('#segment').select2('val');
var marke = jQuery('#model').select2('val');
//Check whether you are getting an output from the log method below in your console
console.log(segment, marke);
if( aData[1]== segment ||
aData[3]== marke )
{
return true;
}
return false;
}
);