DataTable JS无法对带有小数的列进行过滤

时间:2018-08-17 20:18:41

标签: javascript jquery datatables filtering

我想对具有带小数点的数字的DataTable列启用过滤。我能够使代码成功地在没有小数的表上运行,但是无法使用小数进行排序。有什么方法可以修改以下内容以容纳小数?

/* Custom filtering function which will search data in column four between two values */
        $.fn.dataTable.ext.search.push(
            function( settings, data, dataIndex ) {
                var min = parseInt( $('#min').val(), 10 );
                var max = parseInt( $('#max').val(), 10 );
                var age = parseFloat( data[1] ) || 0; // use data for the age column

                if ( ( isNaN( min ) && isNaN( max ) ) ||
                     ( isNaN( min ) && age <= max ) ||
                     ( min <= age   && isNaN( max ) ) ||
                     ( min <= age   && age <= max ) )
                {
                    return true;
                }
                return false;
            }
        );

        $(document).ready(function() {
            var table = $('#example').DataTable();

            // Event listener to the two range filtering inputs to redraw on input
            $('#min, #max').keyup( function() {
                table.draw();
            });
        });

我想知道是否可以将parseInt从min和max变量更改为parseFloat,但是我不确定是否需要修改isNaN?

1 个答案:

答案 0 :(得分:0)

最小和最大变量上的

parseInt应该更改为parseFloat以启用对十进制值的过滤,因为parseInt返回的十进制数为NaN。