2017-09-12 1 views
0

ich den Code verwendet habe:alle Kontrollkästchen in der Kopfzeile wählen, alle Kontrollkästchen in dieser Spalte wählen

<script type="text/javascript"> 
    $(window).load(function() { 
    $(document).delegate(".checkall", "click", function(event) { 
     $(this).closest("table").find(':checkbox').attr('checked', this.checked); 
    }); 
    }); 
</script> 

Dieser Code funktioniert prima, wenn ich das Kontrollkästchen in der Kopfzeile zum ersten Mal aktivieren/deaktivieren. Aber wenn ich das Kontrollkästchen erneut anwähle, funktioniert dieser Code nicht. Die Kontrollkästchen sind nicht ausgewählt.

+0

Check diese Antwort es alles haben, benötigen Sie: https: //stackoverflow.com/questions/426258/setting-checked-for-a-checkbox-with-jquery Auch müssen Sie es wickeln, wenn Anweisung: if ($ (this) .closet ("Tabelle"). find (': checkbox'). attr ('checked')) {/ * Prüfe den Code * /} else {/ * Deaktiviere den Code * /} Und benutze .prop besser – pegla

Antwort

0

Sie sollten .prop() statt .attr() verwenden. Und Sie müssen prüfen, ob ein Element bereits aktiviert ist.

... 
    var $checkbox = $(this).closest("table").find(':checkbox'); 
    if ($checkbox.is(':checked')) $checkbox.prop('checked', false); 
    else       $checkbox.prop('checked', true); 
... 
+0

Ich ersetzte gerade .attr durch .prop in meinem oben erwähnten Code. Es funktioniert gut. Wenn ich eines der Kontrollkästchen in der unteren Spalte abnehme, sollte das Kontrollkästchen für die Kopfzeile ebenfalls automatisch deaktiviert werden. Aber es passiert nicht. – Neha

+0

Ich fürchte, ich kann dir mit diesem Problem nicht helfen, bis ich dein 'html' sehe. Erstellen Sie eine JSFiddle, damit ich einen Blick darauf werfen kann. – voloshin

+0

Iam nicht in der Lage, jsfiddle .please suggest – Neha

Verwandte Themen