Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Check if any row is selected in jQuery DataTables

I am trying to write a function to check if any of the table rows are selected.

I need this function to be triggered at any <tr> click.

Thank you.

Here is my code for selecting rows:

$('#Request tbody').on('click', 'tr', function () {
     if ($(this).hasClass('selected')) {
          $(this).removeClass('selected');
     } else {
          oTable.$('tr.selected').removeClass('selected');
          $(this).addClass('selected');
     }
});
like image 347
dashevsk Avatar asked May 07 '15 10:05

dashevsk


3 Answers

As of Datatables 1.10, there is an any() method that can be used:

var table = $('#example').DataTable();

if ( table.rows( '.selected' ).any() )
    // Your code here
like image 125
corpico Avatar answered Sep 20 '22 02:09

corpico


You have answer in your question already. The code below would let you determine if there are any selected rows.

var $rows = oTable.$('tr.selected');

// If some rows are selected
if($rows.length){

// Otherwise, if no rows are selected
} else {

}

I assume that somewhere in your code you have var oTable = $('#Request').DataTable(). Otherwise you can use $('#Request').DataTable().

like image 39
Gyrocode.com Avatar answered Sep 22 '22 02:09

Gyrocode.com


var table = $('#foo-table').DataTable();
var selectedRows = table.rows({ selected: true });

This is proper way to get the selected rows as of DataTables 1.10.8.

like image 43
Tyler V Avatar answered Sep 20 '22 02:09

Tyler V