2017-01-04 2 views
1

Я новичок в JQuery и datatables. У меня есть datatable с тремя столбцами в строке. Первый столбец - это флажок, а два других столбца - текст. Я хочу проверить, установлен ли первый столбец (флажок) или нет на каком-либо событии. Я могу получить другие поля, но я не знаю, как проверить, установлен ли флажок. У меня есть идентификатор строки и я использую следующий код, чтобы получить строку, а остальные столбцы

Проверьте, установлен ли флажок в строке данных jQuery или нет

function uncheckRow(trId) {<br> 
    var table = $(‘#example’).DataTable(); 
    var row = table.row("#"+trId); 
    var rowData = row.data(); 
    var name = rowData[1]; 
    var age = rowData[2]; 
    // need to check if the check box in the 1st column(rowData[0]) is checked or not, If it is checked, i have to uncheck 
    … 
} 

Я также попытался ниже подход, он работает нормально. Но когда я перехожу на следующую страницу, используя разбивку на страницы, это не работает.

var td = $("#"+trId).find("td"); 
var chkBox = td.eq(0).find('input'); 
if(chkBox.is(':checked')){ 
    chkBox.prop('checked', false); 
} 

Сообщите, пожалуйста, о решении. Спасибо.

+0

Вы можете добавить образец html? –

ответ

1

Попробуйте это. Вы можете получить доступ к узлу в памяти, если у вас есть ссылка на объект строки, независимо от того, находится ли он в DOM или нет.

function uncheckRow(trId) { 
    var table = $(‘#example’).DataTable(); 
    var row = table.row("#"+trId); 
    var rowData = row.data(); 
    var name = rowData[1]; 
    var age = rowData[2]; 

    var $tr = $(row.node()); 
    var $checkbox = $tr.find('td:first-child input[type="checkbox"]') 
    if($checkbox.is(':checked')){ 
     $checkbox.prop('checked', false); 
    } 
} 
+0

Спасибо Эрик. По какой-то причине $ checkbox.is (': checked') всегда возвращает «false», даже если флажок установлен. –

+0

Я бы посмотрел $ checkbox в инструментах браузера dev и посмотрел, действительно ли это флажок. –

+0

Привет Эрик, этот код работает как ожидалось. var row = table.row ("#" + trId) .node(); \t var chkBox = $ (row.cells [0]). Find ('input [type = "checkbox"]'); \t if (chkBox.is (': checked')) { \t \t chkBox.prop ('checked', false); \t} –

Смежные вопросы