如何将值传递给DataTable中的过滤器?

时间:2014-07-22 08:57:58

标签: jquery datatable filtering jquery-datatables

我需要制作自定义过滤器,并且我在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;

        }
    );

1 个答案:

答案 0 :(得分:0)

您只需要返回truefalse即可使过滤器正常工作。您可以获取当前正在执行的segmentmarke的值。只需测试他们实际上正在检索值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;

        }
    );