模糊的multi_select过滤器 - AND和OR条件 - javascript

时间:2015-03-20 21:06:10

标签: javascript yadcf

yadcf(datatables插件)中带有multi_select filter

select2有一个模糊的过滤解决方案。 如果内部行有单个值,如

value1
value2

过滤时,您有OR过滤。它显示了包含values1和values2的所有行 如果您设置文本分隔符(如逗号或多个分隔符)(使用正则表达式),则multiple_select过滤器的行为与AND条件相同。
查看第0列的示例:Example
是否可以根据您的需要设置启用或启用AND条件或OR条件的javascript函数?

为了更好地曝光,我制作了一个关于问题是什么以及我期望在表格中看到什么的视频。
问题很棘手,但用正确的javascript代码来解决它应该不难:

VIDEO

----------------------------------------------- --------------------------------
-------------------------------------------------- -----------------------------

添加功能改进请求:

New VIDEO

视频中使用的示例:Table

1 个答案:

答案 0 :(得分:1)

文本分隔符的目的是帮助您将列中的值提取到过滤器中,但是......当您尝试从过滤器中获取值并将其应用于表时,您将获得所有行您选择的值位于。

如果您希望在获取值时执行如此高级的逻辑,则应使用filter_type: 'custom_func'multi_select_custom_func查看其在the showcase上的工作原理(第一个列)向下滚动到查看该页面上使用的代码。


最后我理解了你的问题,而多选择应该总是作为OR过滤器对所选择的值进行OR过滤而不是这样做,我已经在latest beta 0.8.8.beta.11修复了它,这里是{{3 }}


关于 AND 问题:您无法使用mutli select + text_data_delimiter图像来完成它,您有一个AAA,BBB列,现在您的用户可以选择AAA然后BBB(应该可以工作)但是他也可以选择BBB然后选择AAA,并且没有可以发现BBB的正则表达式,AAA作为AAA,BBB(这只是一个小例子)

所以最好的解决方案是在filter_type: "multi_select"和text_data_delimiter之间切换到(filter_type: "multi_select"没有text_data_delimiter或filter_type: "select"

已经有updated jsfiddle(我不确定何时实施)