当按 Enter 键时,我在使用单列搜索实现数据表时遇到问题。
首先,我使用数据表指南实现它,如下所示:
table.columns().every( function () {
var that = this;
$( 'input', this.footer() ).on( 'keyup change clear', function () {
if ( that.search() !== this.value ) {
that
.search( this.value )
.draw();
}
} );
} );
上面的代码工作正常。但是,由于该表使用服务器端处理,因此通过按键进行搜索的成本太高。
因此,我尝试更改代码,以便它按 Enter 键进行搜索:
table.columns().every(function () {
var that = this;
$('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
if (that.search() !== this.value) {
that
.search(this.value)
.draw();
}
}
});
});
使用上面的代码,如果我编写一个搜索值并按 Enter 键,它将按预期进行搜索。但是,如果我为 编写搜索值column1但按 Enter 键column2,则不会使用 中的值执行搜索column1。这会导致用户需要在每一列上按 Enter 键才能添加/删除搜索值。用户无法先在所需列中写入搜索值,然后在其中一列上按 Enter 进行搜索。
据我所知,该表存储了该值,并且只有在特定列上按 Enter 键后才会更新该值。我不知道如何解决这个问题。
慕无忌1623718
万千封印
相关分类