我想改变dataTables的全局搜索来处理'OR'条件
我可以使用
获取指定列的“OR”条件$('#searchBox').keyup( function(e) {
if(e.keyCode==13){
var arr = $('#searchBox').val().split(' ');
var pattern = (arr[0]) + '|' + (arr[1]);
oTable.fnFilter(pattern, 1, true);
}
} );
这将使第1列的搜索结果显示第一个和第二个单词结果。如何为所有列实现相同的目标?
答案 0 :(得分:1)
您只需将列定义为null
:
$('#searchBox').keyup( function(e) {
if(e.keyCode==13){
var arr = $('#searchBox').val().split(' ');
var pattern = (arr[0]) + '|' + (arr[1]);
oTable.fnFilter(pattern, null, false);
}
});
见小提琴 - >的 http://jsfiddle.net/9UtVw/ 强>
- 以及fnFilter
文档 - >的 http://www.datatables.net/ref#fnFilter 强>
请注意,列基于零。在上面的代码中,您可以对第二列进行排序(就在您不知道的情况下)。
<强>更新即可。我也会做一些数组检查。您假设输入了一个带有空格的字符串,如a b
。但是,如果没有,则不应使用|
,除非您最终在undefined
之后搜索。如果输入两个以上的空格分隔搜索标准如a b c d
怎么办?
$('#searchBox').keyup( function(e) {
if(e.keyCode==13){
var arr = $('#searchBox').val().split(' ');
var pattern ='';
arr.forEach(function(item) {
if (pattern!='') pattern+='|';
pattern+=item;
});
oTable.fnFilter(pattern, null, true, false, true, true);
}
});
小提琴 - &gt;的 http://jsfiddle.net/stbRt/ 强>