How to get value entered in search box In Datatables. Is there a way to get value entered in search box in Data Tables?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
If you just want to check the value when a search is performed [dataTables 1.10.x] :
var table = $('#example').DataTable();
$('#example').on('search.dt', function() {
var value = $('.dataTables_filter input').val();
console.log(value); // <-- the value
});
if you want to check the value before the search, and be able to cancel the search, you must unbind the default searchbox event and create your own, like this - search only when the user has entered more than 3 characters :
$('.dataTables_filter input').unbind().keyup(function() {
var value = $(this).val();
if (value.length>3) {
table.search(value).draw();
}
});
demo -> http://jsfiddle.net/pb0632c3/
To reset the search / filter completely, like if the user has deleted the search term :
if (value.length==0) table.search('').draw();
回答2:
As mentioned in 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();
});
回答3:
Yes. There is. Just call search method without a parameter.
var query = dataTable.search()
回答4:
Try this function to detect the key press and then draw the DataTablee.
$('#search').on('keyup change', function () {
var table = $('#example').DataTable();
table.api().search($(this).val()).draw();
});