2016-04-28 9 views
0

Wie kann ich meine Schaltfläche aktivieren/deaktivieren, wenn eine ausgewählte Checkbox in meiner Datentabelle vorhanden ist?Wie aktiviere/deaktiviere ich eine Schaltfläche, wenn das Kontrollkästchen für Datatables aktiviert ist?

var pctoreceive = $('#pcToReceive').DataTable({ 
      'columnDefs': [{ 
       'targets': 0, 
       'searchable': false, 
       'orderable': false, 
       'className': 'dt-body-center', 
       'render': function (data, type, full, meta) { 
        return '<input type="checkbox" name="id[]" value="' 
         + $('<div/>').text(data).html() + '">'; 
       } 
      }], 

Ich habe meinen Code verkürzen. Oben zeigt, dass ich eine neue Spalte für checkbox wählen hinzugefügt

enter image description here

Diese beiden Taste deaktiviert werden muss, wenn es keine ausgewählte Zeile ist. Andernfalls aktivieren Sie

$('#rc-select-all').on('click', function() { 
    // Check/uncheck all checkboxes in the table 
    var rows = pctoreceive.rows({ 
     'search': 'applied' 
    }).nodes(); 
    $('input[type="checkbox"]', rows).prop('checked', this.checked); 
}); 

// Handle click on checkbox to set state of "Select all" control 
$('#pcToReceive tbody').on('change', 'input[type="checkbox"]', function() { 
    // If checkbox is not checked 
    if (!this.checked) { 
     var el = $('#rc-select-all').get(0); 
     // If "Select all" control is checked and has 'indeterminate' property 
     if (el && el.checked && ('indeterminate' in el)) { 
      // Set visual state of "Select all" control 
      // as 'indeterminate' 
      el.indeterminate = true; 
     } 
    } 
}); 

Antwort

1

Ihr Problem hat nichts mit Datentabelle zu tun.

Legen Sie einfach eine Zählervariable fest, um zu speichern, wie viele Eingaben überprüft werden, und wenn> 0, aktivieren Sie Ihre Schaltfläche.

Sehen Sie dieses kleine Beispiel (und fiddle)

var counterChecked = 0; 

$('body').on('change', 'input[type="checkbox"]', function() { 

    this.checked ? counterChecked++ : counterChecked--; 
    counterChecked > 0 ? $('#submitButton').prop("disabled", false): $('#submitButton').prop("disabled", true); 

}); 
+0

warum ist es am Körper? Warum nicht auf der spezifischen Tabelle? – qwerzxcxyz

+1

nur weil ich keine Tabelle auf mein Beispiel gelegt habe, aber in Ihrem Code sollten Sie den spezifischen Tabellenselektor von c verwenden :) – pumpkinzzz

+0

Ich habe es versucht und es funktioniert nur auf den Zeilen .. aber nicht in der Auswahl/Auswahl auf die Überschrift – qwerzxcxyz

Verwandte Themen