我有我的表,我只想用多选进行过滤。所以我使用相扑选择:http://hemantnegi.github.io/jquery.sumoselect/sumoselect_demo.html然后,我得到了我选择的选定选项,我想用这个值刷新我的表,所以我这样做:
$('#ticketDataTable').DataTable();
$('#ticketDataTable').DataTable().column(5).search(pattern,true,true).draw();
例如模式 ="INITIAL|第二"但是当我这样做时,我只取我的第一个值,而不是两者!
您必须搜索数据表 使用正则表达式进行过滤
从相扑选择获取值后
1:替换没有按计划工作,它用 | 替换第一个逗号,其余它不会替换。
为了克服这个问题,我使用正则表达式替换了模式中的所有逗号值
试试这个链接 : https://jsfiddle.net/p2x1ge7v/2/
$(document).ready(function() {
$('#example').DataTable();
var office = $('#example').DataTable()
.column(2)
.data()
.toArray();
var officeunq = [];
$.each(office, function(i, el){
if($.inArray(el, officeunq) === -1)
{officeunq.push(el);
optionText = $.trim(el);
$('#select1').append(`<option value="${optionText}">
${optionText}
</option>`);
}
});
$('#select1').SumoSelect();
$('#button').click( function () {
var pattern = $('#select1').val();
if(pattern!=null)
{pattern = pattern.toString().replace(/,/g, '|');
$('#example').DataTable().destroy();
alert(pattern);
$('#example').DataTable({ "search": {regex: true}}).column(2).search(pattern, true, false ).draw();
} else
{
$('#example').DataTable().search( '' )
.columns().search( '' )
.draw();
}
} );
} );