如何在Datatables中获取搜索框中输入的值。
是否有一种方法可以在Data Tables中获取搜索框中输入的值?
如果你只想在进行搜索时检查数值 [dataTables 1.10.x]:
var table = $('#example').DataTable();
$('#example').on('search.dt', function() {
var value = $('.dataTables_filter input').val();
console.log(value); // <-- the value
});
如果您想在搜索之前检查值并能够取消搜索,您必须解除默认搜索框事件的绑定并创建自己的事件,例如:只有在用户输入超过3个字符时才进行搜索:
$('.dataTables_filter input').unbind().keyup(function() {
var value = $(this).val();
if (value.length>3) {
table.search(value).draw();
}
});
演示 -> http://jsfiddle.net/pb0632c3/
若用户已删除搜索词并且需要完全重置搜索/过滤器:
if (value.length==0) table.search('').draw();
table.column().search(value).draw();
这段代码是不是应该改为 table.search(value).draw();
? - Marcio Jcolumn()
。 - davidkonraddataTable.search()
。我不确定它是否有文档记录。 - Peter Chaula$.post({ url: 'server.php', data: { search: table.search() }})
这样的东西,如果你设置了 stateSave: true
,你也可以直接读取dataTables cookie。 - davidkonrad有的。您可以调用无参数的搜索方法来获取搜索词。
var query = dataTable.search()
https://datatables.net/reference/api/search()
获取当前应用的全局搜索。如果在API的上下文中有多个表格,则将返回第一个表格的搜索词。如果需要 API 上下文中另一个表格的搜索词,请使用 table()。
.search()
只会给你当前的搜索词,如果有的话,而那可能是基于程序或插件的搜索,而不仅仅是搜索框的内容。 - davidkonrad如在 dataTable api 中提到的:
var table = $('.datatable').DataTable();
$('.datatable').on('search.dt', function (e, settings) {
table.search( this.value ).draw();
})
//or custom input
// #myInput is a <input type="text" id="myInput"> element
$('#myInput').on( 'keyup', function () {
table.search( this.value ).draw();
});
$('input[type="search"]').on( 'keyup', function () {
console.log($(this).val());
} );
$('#search').on('keyup change', function () {
var table = $('#example').DataTable();
table.api().search($(this).val()).draw();
});
jQuery
添加到你的标签列表中,以吸引更多的人群。 - PM 77-1