Tablesorter - 过滤具有多个值的单元格

时间:2014-04-07 13:00:43

标签: jquery tablesorter

我正在尝试自定义Tablesorter表的过滤功能。我有一个表,在某些情况下可能包含用逗号分隔的多个值(通常是一个或两个数字)。

列可能如下所示:

40
32
31,36
33
31,42
36
42
41,42

现在,如果我使用例如36 - 42过滤此列,我希望保留值为“31,42”的列。

我认为它可以是基本的,只需将值拆分并将输入与两个值进行比较。但我找不到合适的函数来挂钩。有什么想法吗?

更新

我有这个解析器来启用我逗号分隔列的排序

        $.tablesorter.addParser(
          id: 'comma-number'
          format: (s) ->
            lNumber = parseFloat(s.replace(/,/g, '.'))
            return lNumber
          type: 'numeric'
        )

我想要做的是将过滤器搜索框中的输入与两个值进行比较。有没有办法在过滤器事件中保持输入值?

1 个答案:

答案 0 :(得分:0)

这里的问题是,当tablesorter解析数字表格单元格内容时,它会忽略逗号(当usNumberFormat optiontrue时。31,42的解析结果为3142

解决方案是将该列上的解析器设置为text,并将过滤器设置为“匹配”

<th class="sorter-text filter-match">Numeric</th>

然后在过滤器中,使用" or " operator进行搜索:"31 or 42""31|42"

这只需要一个基本的初始化代码(demo):

$('table').tablesorter({
    theme: 'blue',
    widgets: ['zebra', 'filter'],
    widgetOptions : {
        filter_reset: '.reset'
    }
});