2 回答
TA贡献1744条经验 获得超4个赞
我在帮助下解决了这个问题。我的数据表是服务器端的,具有动态生成的列,因此我需要从每个输入框获取输入值并搜索每个列。当我了解更多时,我会更新这个答案。
这是工作代码:
table.columns().every(function () {
$('input', this.footer()).keypress(function (e) {
if (e.keyCode == 13) { //search only when Enter key is pressed to avoid wasteful calls
e.preventDefault(); //input is within <form> element which submits form when Enter key is pressed. e.preventDefault() prevents this
var header = table.table().header(); //header because I moved search boxes to header
var inputBoxes = header.getElementsByTagName('input');
$.each(data.columns, function (index) {
var inputBoxVal = inputBoxes[index].value;
table.column(index).search(inputBoxVal);
});
table.draw();
}
});
});
TA贡献1891条经验 获得超3个赞
有两种方法可以解决这个问题:
用于
activeElement
查看哪些元素具有焦点,并进行相应的搜索。在原始事件发生后设置一个计时器
keyup
,并在几秒钟后进行搜索:
var searchTimer;
table.columns().every( function () {
var that = this;
$( 'input', this.footer() ).on( 'keyup change clear', function () {
if ( that.search() !== this.value ) {
clearTimeout(searchTimer); // Reset timer
var value = this.value;
searchTimer = setTimeout(function() {
that.search(value).draw();
}, 3000); // Wait 3 seconds
}
});
});
- 2 回答
- 0 关注
- 96 浏览
添加回答
举报