模棱两可的multi_select过滤器 - AND 和 OR 条件 - javascript

ambiguous multi_select filter - AND and OR condition - javascript

本文关键字:AND 条件 javascript OR 过滤器 multi select 模棱两可      更新时间:2023-09-26

multi_select 在 yadcf(Datatables 插件(中使用 select2 进行过滤有一个模棱两可的解决方案。如果你在行内有单个值,如

value1
value2

过滤时,您有一个OR筛选。它显示具有值 1 和值 2 的所有行。
如果设置逗号等文本分隔符或多个分隔符(使用正则表达式(,multiple_select筛选器的行为将充当AND条件。
查看第 0 列的示例:示例
是否可以有一个 javascript 函数来根据您的需要启用 AND 条件或 OR 条件?

为了获得更好的曝光度,我制作了一个小视频,说明问题是什么以及我希望在表格中看到什么。
问题很棘手,但用正确的javascript代码解决应该不难

视频


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

添加功能改进请求:

新视频

视频中使用的示例:表

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

如果您希望在选取值时执行如此高级的逻辑,则应使用filter_type: 'custom_func'multi_select_custom_func查看它在展示架上的工作方式(这是第一列(,请向下滚动到查看该页面上使用的代码。


最后我明白了你的问题,虽然多选应该始终作为所选值的 OR 过滤器工作,但它没有这样做,我已经在最新的 beta 0.8.8.beta.11 中修复了它,这是一个更新的 jsfiddle


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

因此,最好的解决方案是在带text_data_delimiter的filter_type: "multi_select"与(filter_type: "multi_select"没有text_data_delimiter或filter_type: "select"(之间切换

并且已经有一个类似的问题(不确定我什么时候会实现它(