Datatables全局搜索和各列单独搜索都出现搜索关键词时,互相干扰,让结果不是自己想要的,需要在各列单独搜索时,清除掉全局搜索框内的内容后再提交各自的搜素。
oTable_Main.columns().every( function () {
var that = this;
$( 'input', this.footer() ).on( 'keyup change', function (e) { //各列搜索框
var isHZnum=false;
var RegHZ = /^[0-9\u4e00-\u9fa5]+$/; //汉字+数字范围
if (RegHZ.test(this.value)) {isHZnum=true;}else{isHZnum=false;}
if (isHZnum&&that.search()!==this.value&&e.keyCode!=8) {//汉字数字范围内的内容才提交搜索,回退键也不提交搜索
// $('input[aria-controls="example"]')[0].value=''; //清除全局搜索内容,防止干扰,不管用
oTable_Main.search(""); //清除掉全局搜索框内容,防止干扰
that
.search( this.value )
.draw();
}
if(this.value==''){
that.search(''); //清空搜索内容,但不刷新
// .draw();
}
} );
} );