Wie kann ich anhand der ID des Kontrollkästchen-Arrays überprüfen, ob ein Kontrollkästchen in einem Kontrollkästchen-Array aktiviert ist?
Ich verwende den folgenden Code, der jedoch unabhängig von der ID immer die Anzahl der aktivierten Kontrollkästchen zurückgibt.
function isCheckedById(id) {
alert(id);
var checked = $("input[@id=" + id + "]:checked").length;
alert(checked);
if (checked == 0) {
return false;
} else {
return true;
}
}
javascript
jquery
html
checkbox
Jake
quelle
quelle
id
s einzigartig sind!name
kann (und sollte in diesem Fall) wiederholen, aber Sie werden eine Menge seltsamer Dinge finden, wenn Sie das duplizierenid
! = DAntworten:
IDs müssen in Ihrem Dokument eindeutig sein. Dies bedeutet, dass Sie dies nicht tun sollten :
Löschen Sie stattdessen die ID und wählen Sie sie nach Namen oder einem enthaltenden Element aus:
Und jetzt die jQuery:
quelle
$('#checkArray :checkbox:checked').length > 0;
wenn das einfachere$('#checkArray').checked
funktioniert und in mehr Versionen verfügbar ist?var atLeastOneIsChecked = $('input[name="chk[]"]:checked').length > 0;
Das wird angezeigt, wenn das Kontrollkästchen aktiviert ist.
Für eine Reihe von Kontrollkästchen mit demselben Namen können Sie die Liste der aktivierten Kontrollkästchen abrufen, indem Sie:
Um sie dann zu durchlaufen und zu sehen, was überprüft wurde, können Sie Folgendes tun:
Um herauszufinden, wie viele überprüft wurden, können Sie Folgendes tun:
quelle
$('#'+id).attr('checked')
, der$('#' + id).is(":checked")
IMO entspricht, aber leichter zu merken ist..attr('checked')
. Das Verhalten hat sich in jQuery 1.6 geändert. Es kehrte zurückfalse
odertrue
. Jetzt kehrt es zurückundefined
oder"checked"
..is(':checked')
hat dieses Problem nicht.$('.ClassName').is(':checked')
scheint das nicht zu funktionieren, aber es$('#' + id).is(":checked")
funktioniert? abgesehen von der Tatsache, dass man nach ID und nach Klassennamen sucht.Der obige Code gibt true zurück, wenn das Kontrollkästchen aktiviert ist, oder false, wenn nicht.
quelle
var isChecked = $('#CheckboxID').attr('checked') ? true : false;
, aber nicht immer den richtigen Wert zurückgegeben. So danke!Alle folgenden Methoden sind nützlich:
Es wird empfohlen, DOMelement oder Inline "this.checked" zu vermeiden, stattdessen sollte die jQuery on-Methode als Ereignis-Listener verwendet werden.
quelle
jQuery-Code, um zu überprüfen, ob das Kontrollkästchen aktiviert ist oder nicht:
Alternative:
quelle
:
... Die richtige ist :if(('input[name="checkBoxName"]').is(':checked'))
.if($('input[name="checkBoxName"]').is(':checked'))
.else
Block niemals ausführen , da ein jQuery-Objekt, selbst wenn es keine übereinstimmenden Elemente enthält, "wahr" ist..length
Zum Ende hinzufügen , dann redest du.Alle folgenden Methoden sind möglich
quelle
Sie können diesen Code verwenden,
quelle
Gemäß der jQuery- Dokumentation gibt es folgende Möglichkeiten, um zu überprüfen, ob ein Kontrollkästchen aktiviert ist oder nicht. Betrachten wir zum Beispiel ein Kontrollkästchen (Check Working jsfiddle mit allen Beispielen)
Beispiel 1 - Mit aktiviert
Beispiel 2 - Bei jQuery ist HINWEIS -: aktiviert
Beispiel 3 - Mit jQuery prop
Überprüfen Sie Working jsfiddle
quelle
Sie können dies versuchen:
quelle
attr
nur der Attributwert in HTML und nicht der Eigenschaftswert im DOM wiedergegeben wird. Siehe in der Dokumentationattr
, wo es heißt „Zum Abrufen und Änderung DOM Eigenschaften wie diechecked
,selected
oderdisabled
Zustand von Formularelementen, verwenden Sie die.prop()
Methode.“, Und die Dokumentationprop
, wo es heißt : „Das.prop()
Verfahren sollte eingestellt werdendisabled
undchecked
stattdessen der.attr()
Methode. "Sie können einen der folgenden empfohlenen Codes von jquery verwenden.
quelle
Ich weiß, dass das OP jquery will, aber in meinem Fall war reines JS die Antwort. Wenn also jemand wie ich hier ist und kein jquery hat oder es nicht verwenden möchte, ist hier die JS-Antwort:
Es gibt true zurück, wenn die Eingabe mit der ID myCheck aktiviert ist, und false, wenn sie nicht aktiviert ist.
So einfach ist das.
quelle
$("#myCheck")[0].checked
in jquery funktioniert! : DSie können es einfach so machen;
Geige arbeiten
HTML
jQuery
oder noch einfacher;
Wenn das
checkbox
aktiviert ist, wird estrue
anderweitig zurückgegebenundefined
quelle
or even simpler;
->$("#checkbox").checked
Dies ist auch eine Idee, die ich häufig benutze:
Wenn cheked, gibt es 1 zurück; Andernfalls wird 0 zurückgegeben.
quelle
Einfache Demo zum Aktivieren und Einstellen eines Kontrollkästchens.
jsfiddle !
quelle
In meinem Beispiel war die Situation ein Dialogfeld, das das Kontrollkästchen vor dem Schließen des Dialogfelds überprüfte. Keine der oben genannten und Wie kann überprüft werden, ob in jQuery ein Kontrollkästchen aktiviert ist? und jQuery, wenn das Kontrollkästchen aktiviert ist, schien ebenfalls nicht zu funktionieren.
Schlussendlich
Dies funktionierte so, dass die Klasse und dann die ID aufgerufen wurden. eher als nur die ID. Dies kann an den verschachtelten DOM-Elementen auf dieser Seite liegen, die das Problem verursachen. Die Problemumgehung war oben.
quelle
Für Kontrollkästchen mit einer ID
Sie können einfach tun
Sie erhalten
true
oderfalse
als Rückgabewert für die obige Syntax. Sie können es in der if-Klausel als normalen booleschen Ausdruck verwenden.quelle
So etwas kann helfen
quelle
Laut jsperf.com sind die DOM-Operationen am schnellsten, dann $ (). Prop () gefolgt von $ (). Is () !!
Hier sind die Syntaxen:
Ich persönlich bevorzuge
.prop()
. Im Gegensatz dazu.is()
kann es auch zum Einstellen des Werts verwendet werden.quelle
Aktivieren Sie das Kontrollkästchen
quelle
Mit diesem Code können Sie überprüfen, ob mindestens ein Kontrollkästchen in verschiedenen Kontrollkästchengruppen oder aus mehreren Kontrollkästchen aktiviert ist oder nicht. Mit dieser Option müssen Sie keine IDs oder dynamischen IDs entfernen. Dieser Code funktioniert mit denselben IDs.
Referenz Verbindung
quelle
Da es Mitte 2019 ist und jQuery manchmal Dinge wie VueJS, React usw. in den Hintergrund rückt, ist hier eine reine Vanille-Javascript-Onload-Listener-Option:
quelle
Ihre Frage ist nicht klar: Sie möchten bei der Eingabe "Checkbox Array ID" angeben und
true/false
bei der Ausgabe erhalten - auf diese Weise wissen Sie nicht, welches Kontrollkästchen aktiviert wurde (wie Ihr Funktionsname andeutet). Also unten ist mein Vorschlag von Körper von Ihnen,isCheckedById
die bei Eingabe Checkboxid
und bei Ausgabe Rückgabetrue/false
(es ist sehr einfach, aber Ihre ID sollte kein Schlüsselwort sein),Code-Snippet anzeigen
quelle
Verwenden Sie den folgenden Code
quelle
$(function() { $("[id$='chkSendMail']").on("change", ShowMailSection); });
$("[id$='chkSendMail']:checked]")
sollten also gut funktionieren