Ich versuche, alle Kontrollkästchen mit jQuery zu aktivieren / deaktivieren. Durch Aktivieren / Deaktivieren des übergeordneten Kontrollkästchens werden nun alle untergeordneten Kontrollkästchen aktiviert / deaktiviert, und der Text des übergeordneten Kontrollkästchens wird in "Aktivieren / Deaktivieren" geändert.
Jetzt möchte ich das übergeordnete Kontrollkästchen durch eine Eingabeschaltfläche ersetzen und den Text auch auf der Schaltfläche in checkall / uncheckall ändern. Gibt es den Code, kann jemand bitte den Code optimieren?
$( function() {
$( '.checkAll' ).live( 'change', function() {
$( '.cb-element' ).attr( 'checked', $( this ).is( ':checked' ) ? 'checked' : '' );
$( this ).next().text( $( this ).is( ':checked' ) ? 'Uncheck All' : 'Check All' );
});
$( '.cb-element' ).live( 'change', function() {
$( '.cb-element' ).length == $( '.cb-element:checked' ).length ? $( '.checkAll' ).attr( 'checked', 'checked' ).next().text( 'Uncheck All' ) : $( '.checkAll' ).attr( 'checked', '' ).next().text( 'Check All' );
});
});
<input type="checkbox" class="checkAll" /> <b>Check All</b>
<input type="checkbox" class="cb-element" /> Checkbox 1
<input type="checkbox" class="cb-element" /> Checkbox 2
<input type="checkbox" class="cb-element" /> Checkbox 3
Antworten:
Probier diese :
DEMO
quelle
.click()
.attr()
undremoveAttr()
sollte nicht mit dem Attribut "geprüft" verwendet werden. AsremoveAttr()
entfernt das Attribut, anstatt es auf zu setzenfalse
..prop('checked', true)
oder.prop('checked', false)
sollte stattdessen verwendet werden, wie in der Antwort @ richard-garside erläutert.Dies ist der kürzeste Weg, den ich gefunden habe (benötigt jQuery1.6 +)
HTML:
JS:
Ich verwende .prop, da .attr für Kontrollkästchen in jQuery 1.6+ nicht funktioniert, es sei denn, Sie haben Ihrem Eingabe-Tag explizit ein markiertes Attribut hinzugefügt.
Beispiel-
quelle
Probier diese:
HTML
JavaScript
DEMO
quelle
Html
Javascript
quelle
Lösung zum Umschalten von Kontrollkästchen mithilfe einer Schaltfläche, kompatibel mit jQuery 1.9+, wenn Google-Event nicht mehr verfügbar ist :
DEMO
quelle
Versuche dies:
e
ist das Ereignis, das generiert wird, wenn Sie dies tunclick
, unde.target
ist das Element, auf das geklickt wird (.checkAll
), sodass Sie nur die Eigenschaftchecked
von Elementen mit Klasse.cb-element
wie die von Element mit Klasse .checkAll` einfügen müssen.PS: Entschuldigen Sie mein schlechtes Englisch!
quelle
$('#all_news_items').on('click', function(e) { $('.news-item-option').prop('checked', $(e.target).prop('checked')); });
ohne Checkall ausrichten können Funktionen, die andere Formularelemente stören, so dass Sie einfach einen neuen Checkall hinzufügen können:$('#all_specializations').on('click', function(e) { $('.specialization-option').prop('checked', $(e.target).prop('checked')); });
Sie können dies versuchen
Klasse
.checkAll
ist ein Kontrollkästchen, das die Massenaktion steuertquelle
Stimmt mit Richard Garsides kurzer Antwort überein, aber anstatt
prop()
in zu verwenden$(this).prop("checked")
, können Sie die native JS-checked
Eigenschaft des Kontrollkästchens verwenden, wie z.quelle
Aktivieren / Deaktivieren Sie Alle mit Intermediate-Eigenschaft mit jQuery
Abgerufene Elemente im Array mit der Methode getSelectedItems () abrufen
Quell- Checkbox-Liste Alle mit unbestimmtem Master-Check auswählen / abwählen
HTML
jQuery
quelle
Beste Lösung hier Check Fiddle
quelle
Der folgende Code funktioniert, wenn der Benutzer alle Kontrollkästchen aktiviert und dann das Kontrollkästchen Alle aktiviert ist. Wenn der Benutzer ein Kontrollkästchen deaktiviert, wird das Kontrollkästchen Alle deaktiviert deaktiviert.
quelle
Versuche dies
quelle
Schamlose Eigenwerbung: Dafür gibt es ein jQuery-Plugin .
HTML:
JS:
...und du bist fertig.
http://jsfiddle.net/mattball/NrM2P
quelle
Versuche dies,
quelle
Mit können Sie
this.checked
den aktuellen Status des Kontrollkästchens überprüfen.Code-Snippet anzeigen
quelle
Versuchen Sie den folgenden Code, um alle Kontrollkästchen zu aktivieren / deaktivieren
Probieren Sie diesen Demo-Link aus
Es gibt auch einen anderen kurzen Weg, dies zu tun, siehe Beispiel unten. In diesem Beispiel ist das Kontrollkästchen Alle aktivieren / deaktivieren aktiviert oder nicht aktiviert. Wenn diese Option aktiviert ist, werden alle Kontrollkästchen aktiviert, und wenn nicht alle deaktiviert sind
quelle
Ich weiß, dass diese Frage alt ist, aber ich habe festgestellt, dass die meisten Leute ein Kontrollkästchen verwenden. Die akzeptierte Antwort verwendet eine Schaltfläche, kann jedoch nicht mit mehreren Schaltflächen arbeiten (z. B. eine oben auf Seite eins unten). Hier ist also eine Modifikation, die beides kann.
HTML
jQuery
Auf diese Weise können Sie beliebig viele Schaltflächen verwenden, um Text- und Kontrollkästchenwerte zu ändern. Ich habe einen
e.preventDefault()
Anruf eingefügt, da dadurch die Seite aufgrund deshref="#"
Teils nicht mehr nach oben springen kann .quelle
quelle
Hier ist ein Link, über den das übergeordnete Kontrollkästchen aktiviert und deaktiviert wird und alle untergeordneten Kontrollkästchen aktiviert und deaktiviert werden.
jquery check deaktiviert alle Kontrollkästchen mit Jquery With Demo
quelle
quelle
Fügen Sie dies in Ihren Codeblock ein oder klicken Sie sogar auf Ihre Schaltfläche
quelle
quelle
Überprüfen Sie alle mit deaktivieren / überprüfen Sie den Controller, wenn alle Elemente aktiviert sind / nicht
JS:
HTML:
quelle