我正在使用here找到的jquery datatables插件。有两列名为“New GL”和“Old GL”。 datatables插件具有一个称为搜索的内置功能,可根据您在文本框中输入的关键字过滤表中的数据。
当我在我想要的文本框中输入“40.88.1010.0”或“40.88.600000.05”时 这条记录出现了。
同样的规则适用于所有记录。我希望搜索继续使用单个文本框过滤所有列,但是对于“New GL”和“Old GL”列...我希望用户能够同时使用“ - ”和“。”。字符。
我最初的想法是,如果数据表有一个正则表达式选项,它会起作用,因为“。”在正则表达式是任何角色。但我只希望规则适用于这两列。
这可以使用datatables插件吗?
这是我当前的数据表初始化代码:
$(document).ready(function () {
var table = $('#datatable').DataTable({ "iDisplayLength": 50 });
});
答案 0 :(得分:1)
您可以添加data-search
属性found here。
那么你的行就会变成这样:
<tr>
<td data-search="40.88.1010.0">40-88-1010-0</td>
<td data-search="40.88.600000.05">40-88600000-05</td>
</tr>
默认情况下,数据表的过滤使用来自所有行的数据。
答案 1 :(得分:1)
<强>解强>
您需要实现自定义搜索功能,如下所示。
此方法的缺点是,其他列中的内容也将以相同方式搜索,即使用.
或-
个字符进行搜索。
$(document).ready(function () {
var table = $('#datatable').DataTable({
"pageLength": 50
});
$('.dataTables_filter input', table.table().container())
.off('.DT')
.on('keyup.DT cut.DT paste.DT input.DT search.DT', function (e) {
// If the length is 3 or more characters, or the user pressed ENTER, search
if(this.value.length > 0){
// Escape the expression so we can perform a regex match
var val = $.fn.dataTable.util.escapeRegex(this.value);
// Add regular expression to match both . and - characters
val = val.replace(/(\\\-|\\\.)/g, "[\\\.\\\-]");
// Call the API search function
table.search(val, true, false).draw();
} else {
// Ensure we clear the search if they backspace far enough
table.search("").draw();
}
});
});
<强>样本强>
请参阅this jsFiddle以获取代码和演示。