6

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');
     }
});
3

4 Answers 4

13

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
Sign up to request clarification or add additional context in comments.

1 Comment

Exactly what I was looking for and should be marked as the correct answer. Thanks @corpico
1

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().

Comments

1
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.

Comments

0

Using the API.

var oTable = $("#yourtable").DataTable();

anyRowSelected = oTable.rows({selected : true}).indexes().length === 0 ? false : true;//false - nothing selected. true - 1 or more are selected.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.