【发布时间】:2022-02-12 03:21:56
【问题描述】:
我想对包含带小数的数字的 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?
【问题讨论】:
-
我会在逗号替换为点的值上尝试
parseFloat():parseFloat( data[1].replace(",",".") ) || 0; -
@LouysPatriceBessette 你能解释一下吗?我的表没有逗号,只有小数。您是说 parseInt 将我表中的小数作为逗号相互贯穿吗?我的理解是问题在于 parseInt,因为带小数的数字是错误的。
-
嗬...对不起,我想我幻觉出了昏迷问题...
-
所以 parseFloat 应该这样做...为什么以 25 为底(parseInt 的第二个参数)?通常,小数以 10 为底...
-
@LouysPatriceBessette 哦!确实应该是 10。
标签: javascript jquery datatables filtering