How to get value entered in search box In Datatabl

2019-02-08 10:17发布

问题:

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();
});