multi_select filter与 select2在 yadcf (数据表插件)中,有一个不明确的过滤解决方案。 如果您的行内有单个值,例如
value1
value2
当你过滤时,你有一个OR
过滤。它显示具有values1和values2的所有行。
如果您设置逗号等文本分隔符或多个分隔符(使用正则表达式),multiple_select 过滤器将充当 AND
条件。
查看第 0 列的示例:Example
是否可以有一个 JavaScript 函数来根据您的需要启用 AND 条件或 OR 条件?
为了更好地曝光,我制作了一个小视频,说明问题所在以及我期望在表中看到的内容。
问题很棘手,但用正确的 javascript 代码解决应该不难
------------------------------------------------------------ --------------------------------
-------------------------------------------------- ------------------------------------------
添加功能改进请求:
视频中使用的示例:Table
最佳答案
文本分隔符的目的是帮助您将列中的值提取到过滤器中,但是...当您尝试从过滤器中提取值并将其应用到表中时,您将获得所有行您选择的值所在的位置。
如果您希望在选取值时执行如此高级的逻辑,则应使用 filter_type: 'custom_func'
或 multi_select_custom_func
看看它是如何工作的上the showcase (其第一列)向下滚动以查看该页面上使用的代码。
最后我理解了你的问题,虽然多重选择应该始终作为选定值的 OR 过滤器,但它并没有这样做,我已在 latest beta 0.8.8.beta.11 中修复了它。这是一个 updated jsfiddle
<小时/>关于您的AND问题:您无法使用 mutli select + text_data_delimiter
图像来完成它,您有一列包含 AAA、BBB,现在您的用户可以选择 AAA然后是 BBB(应该可以),但他也可以选择 BBB,然后是 AAA,并且没有正则表达式可以将 BBB、AAA 识别为 AAA、BBB(这只是一个小例子)
因此,最好的解决方案是将 filter_type: "multi_select"
with text_data_delimiter 切换为 (filter_type: "multi_select"
without text_data_delimiter or filter_type: "select “
)
并且已经有一个 similar issue open for that (不确定什么时候实现)
关于javascript - 不明确的 multi_select 过滤器 - AND 和 OR 条件 - javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29175813/