试图仅显示与在搜索栏中输入的搜索词完全匹配。jQuery DataTables - 按精确匹配过滤列
例如,我有一个按ID#过滤的搜索栏。我只想要匹配显示的输入确切#的记录。
因此,如果输入123
,我不想要12345
,91239
等显示。只有123
。
在常见问题解答页面上看到bRegex
的一些信息,但它不适用于我。有任何想法吗?
试图仅显示与在搜索栏中输入的搜索词完全匹配。jQuery DataTables - 按精确匹配过滤列
例如,我有一个按ID#过滤的搜索栏。我只想要匹配显示的输入确切#的记录。
因此,如果输入123
,我不想要12345
,91239
等显示。只有123
。
在常见问题解答页面上看到bRegex
的一些信息,但它不适用于我。有任何想法吗?
好的解决了这个问题。但是,由于我使用完全匹配的列有时包含多个由逗号分隔的ID#,所以我无法使用完全匹配搜索。
但对于那些有兴趣,这里是答案:
oTable.fnFilter("^"+TERM+"$", COLUMN , true); //Term, Column #, RegExp Filter
$(document).ready(function() {
$('#example').dataTable({
"oSearch": {"bSmart": false}
});
})
尝试使用bSmart选项并将其设置为false
从文档
“当‘bSmart’数据表将使用它的智能过滤方法(以 字比赛在数据中的任何一点),当为假时,这将不会被 完成。“
UPDATE
我发现这一点:
oSettings.aoPreSearchCols[ iCol ].sSearch = "^\\s*"+'1'+"\\s*$";
oSettings.aoPreSearchCols[ iCol ].bRegex = false;
oSettings.aoPreSearchCols[ iCol ].bSmart= false;
在这个环节http://www.datatables.net/forums/discussion/4096/filtering-an-exact-match/p1
貌似可以设置bSmart
和bRegex
每列,以及指定每列手动正则表达式。
不太我所期待的。所以基本上我有3个自定义搜索字段用于过滤表格。我只希望其中一个字段使用精确搜索。对于其他领域,我希望他们仍然使用智能搜索。 – JimmyJammed 2011-12-22 21:54:11
同样在旁注中,bSmart基本上意味着如果我输入“John Smith”,它会找到这些单词的任意组合(即“Smith John”,“John Jack Smith”等。) – JimmyJammed 2011-12-22 21:57:08
Ive up dated my answer – 2011-12-22 22:02:59
$(document).ready(function() {
tbl = $('#example').dataTable();
tbl.fnFilter("^" + filter_value + "$");
});
其中filter_value
是在过滤器字段中输入的字符串。
没有返回任何结果...? – JimmyJammed 2011-12-22 21:51:57
这会给你一个确切的结果为一列。
table.column(i)
.search("^" + $(this).val() + "$", true, false, true)
.draw();
即,搜索(输入,正则表达式,智能,caseInsen)
table.column(col_num).search(filter_value +“$”,true,true,false).draw();
如果你想精确匹配从一开始,你可以试试这个代码,
var table = $('#myTable').DataTable()
$('#filterrow > th:nth-child(2) > input').on('keyup change', function() {
table
.column($(this).parent().index()+':visible')
.search("^" + this.value, true, false, true)
.draw();
});
$('#filterrow> th:nth-child(2)> input')是一个选择器 – Tariq 2017-11-07 08:02:26
嗨,先生,我有同样的问题。我想知道我应该在哪里放置您提供的代码?因为我想尝试它,如果它能解决我的问题。希望你会回复。 – Louie 2016-05-11 15:27:02