我试图通过为过滤器传递多个值来制作过滤器,但只返回一次。
$(document).ready(function(){
$('#account_name').val("Some value");
$('#phone_number').val("Some value");
$('#YOUR_CUSTOM_FIELD_ID_c').val("Some value");
$('#YOUR_CUSTOM_FIELD_ID_c').val("Some value");
});
在此处找到测试代码http://localhost/myproject/index.php/admin/index/index/key/e8d39e2cf8686363a43e0524be944100/
答案 0 :(得分:3)
已解决,我做了一些调整以改进代码。
condition: function(searchTerm, cellValue) {
var separators = ['-', '/', ':', ';', ','];
var strippedValue = searchTerm.split(new RegExp(separators.join('|'), 'g'));
var bReturnValue = false;
//console.log(strippedValue, "teste");
for(iIndex in strippedValue){
var sValueToTest = strippedValue[iIndex];
sValueToTest = sValueToTest.replace(" ", "");
if (cellValue.toLowerCase().indexOf(sValueToTest.toLowerCase()) >= 0)
bReturnValue = true;
}
return bReturnValue;
}
查看链接中的代码: http://plnkr.co/edit/UVDWfucjclXl4Ij9Ylm7?p=preview
答案 1 :(得分:0)
如果某人需要AND而不是OR
filter: {
condition:function(searchTerm, cellValue){
if(cellValue===null){
return false;
}
let separators = [' ', '/', ':', ';', ','];
let strippedValue = searchTerm.split(new RegExp(separators.join('|'), 'g'));
let bReturnValue = false;
let intNumFound = 0;
for(let iIndex in strippedValue){
let sValueToTest = strippedValue[iIndex];
sValueToTest = sValueToTest.replace(" ", "");
if (cellValue.toLowerCase().indexOf(sValueToTest.toLowerCase()) >= 0){
intNumFound++;
}
//bReturnValue = true;
}
if(intNumFound>=strippedValue.length){
bReturnValue = true;
}
return bReturnValue;
}