2017-01-04 11 views
1

Ich bin neu in JQuery und Databases. Ich habe eine Datentabelle mit drei Spalten hintereinander. Die erste Spalte ist ein Kontrollkästchen und die anderen beiden Spalten sind Text. Ich möchte überprüfen, ob die erste Spalte (Checkbox) bei einem Ereignis aktiviert ist oder nicht. Ich bin in der Lage, die anderen Felder zu bekommen, aber ich weiß nicht, wie man überprüft, ob das Kontrollkästchen aktiviert ist. Ich habe die Zeilen-ID und ich bin mit dem folgenden Code die Zeile und die anderen Spalten bekommen

Überprüfen Sie, ob das Kontrollkästchen in einer jquery-Datentabelle Zeile aktiviert ist oder nicht

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 
    … 
} 

ich auch versucht, den unten Ansatz, es funktioniert gut. Aber wenn ich mit Paginierung zur nächsten Seite gehe, funktioniert das nicht.

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

Bitte geben Sie die Lösung an. Danke.

+0

Können Sie HTML-Beispiel hinzufügen? –

Antwort

1

Versuchen Sie dies. Sie können auf den Knoten im Speicher zugreifen, wenn Sie einen Verweis auf das Zeilenobjekt haben, unabhängig davon, ob es sich um das DOM handelt oder nicht.

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

Danke Eric. Aus irgendeinem Grund gibt $ checkbox.is (': checked') immer 'false' zurück, obwohl das Kontrollkästchen aktiviert ist. –

+0

Ich würde $ Kontrollkästchen in den Browser-Tools schauen und sehen, ob es tatsächlich ein Kontrollkästchen ist. –

+0

Hallo Eric, dieser Code funktioniert wie erwartet. var row = table.row ("#" + trId) .node(); \t var chkBox = $ (row.cells [0]). Find ('input [type = "checkbox"]'); \t if (chkBox.is (': geprüft')) { \t \t chkBox.prop ('checked', false); \t} –

Verwandte Themen