Ich muss die checked
Eigenschaft eines Kontrollkästchens aktivieren und eine Aktion basierend auf der überprüften Eigenschaft mit jQuery ausführen.
Wenn beispielsweise das Kontrollkästchen Alter aktiviert ist, muss ein Textfeld angezeigt werden, um das Alter einzugeben. Andernfalls wird das Textfeld ausgeblendet.
Der folgende Code false
wird jedoch standardmäßig zurückgegeben:
if ($('#isAgeSelected').attr('checked'))
{
$("#txtAge").show();
}
else
{
$("#txtAge").hide();
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" id="isAgeSelected"/>
<div id="txtAge" style="display:none">
Age is selected
</div>
Wie kann ich die checked
Eigenschaft erfolgreich abfragen ?
javascript
jquery
html
checkbox
Prasad
quelle
quelle
$('#isAgeSelected').checked
$('#isAgeSelected')[0].checked
Antworten:
Die
checked
Eigenschaft eines Kontrollkästchen-DOM-Elements gibt denchecked
Status des Elements an.In Anbetracht Ihres vorhandenen Codes können Sie daher Folgendes tun:
Es gibt jedoch eine viel schönere Möglichkeit, dies zu tun
toggle
:quelle
is(':checked')
Geschäft nicht nutzt .this.checked
ist nicht jQuery, wie das OP verlangt. Außerdem funktioniert es nur, wenn der Benutzer auf das Kontrollkästchen klickt, das nicht Teil der Frage ist. Die Frage ist wiederumHow to check whether a checkbox is checked in jQuery?
zu jedem Zeitpunkt mit oder ohne Klicken auf das Kontrollkästchen und in jQuery.Verwenden Sie die is () -Funktion von jQuery :
quelle
$("#txtAge").toggle($("#isAgeSelected").is(':checked'))
.visible
"Eigenschaft" ( Eigenschaft ? Sie meinen Methode ?), da das Element no HTML eine sichtbare Eigenschaft hat. Sie haben einedisplay
Stileigenschaft und sie ist etwas komplexer als Ein / Aus.Verwenden von jQuery> 1.6
Verwenden der neuen Eigenschaftsmethode:
quelle
.prop
Methode die entworfene Methode, um Requisiten zu überprüfen. .. ... Wenn Sie den.is(":checked")
Ansatz machen wollen, ist das in Ordnung, aber es ist nicht die entworfene Art, es mit jquery zu machen. Recht?.is(":checked")
und.prop("checked")
sind beide gültige Möglichkeiten, um das gleiche Ergebnis in jQuery zu erhalten,.is
funktioniert in allen Versionen,.prop
erfordert 1.6+.attr('checked')
in jQuery 1.11.3 verwenden, werden Sie undefiniert. Wenn Sie es verwenden.prop('checked')
, erhalten Sie true / false. Ich verstehe nicht, warum sie es so geändert haben, dass es funktioniert, wenn ältere Browser die späteren jQuery-Versionen, die eingeführt wurden.prop()
und daher benötigen, nicht unterstützen können.attr()
. Die einzige Rettung besteht darin, dass die älteren Browser (dh IE 8) nichts> jQuery 1.9 unterstützen können. Hoffentlich haben sie dies.attr('checked')
in dieser Version nicht getan (make = undefined)! Zum Glück gibt es immerthis.checked
.jQuery 1.6+
jQuery 1.5 und niedriger
Beliebige Version von jQuery
Alle Gutschriften gehen an Xian .
quelle
this.checked
wird gerade Javascript verwendet. Aber ich liebe diese jQuery-übergreifende Antwort!Ich benutze dies und das funktioniert absolut gut:
Hinweis: Wenn das Kontrollkästchen aktiviert ist, wird true zurückgegeben, andernfalls undefiniert. Überprüfen Sie daher besser den Wert "TRUE".
quelle
.attr()
! Wenn sie nur gut genug in Ruhe gelassen würden ... Eine andere Antwort hier zu finden, sagte, dass Sie nurthis.checked
für eine Cross-jQuery-Lösung verwenden können, da es sich im Grunde nur um Javascript handelt.Verwenden:
quelle
Seit jQuery 1.6 hat sich das Verhalten von
jQuery.attr()
geändert, und Benutzer werden aufgefordert, es nicht zum Abrufen des überprüften Status eines Elements zu verwenden. Stattdessen sollten Sie Folgendes verwendenjQuery.prop()
:Zwei weitere Möglichkeiten sind:
quelle
Das hat bei mir funktioniert:
Wo
isAgeSelected
ist die ID der Steuerung?Auch die Antwort von @ karim79 funktioniert einwandfrei . Ich bin mir nicht sicher, was ich zum Zeitpunkt des Tests verpasst habe.
Beachten Sie, dass diese Antwort Microsoft Ajax und nicht jQuery verwendet
quelle
== true
Wenn Sie eine aktualisierte Version von jquery verwenden, müssen Sie eine
.prop
Methode auswählen, um Ihr Problem zu beheben:$('#isAgeSelected').prop('checked')
wird zurückgegeben,true
wenn aktiviert undfalse
deaktiviert. Ich habe es bestätigt und bin früher auf dieses Problem gestoßen.$('#isAgeSelected').attr('checked')
und$('#isAgeSelected').is('checked')
kehrt zurück,undefined
was für die Situation keine würdige Antwort ist. Gehen Sie also wie unten angegeben vor.Hoffe es hilft :) - Danke.
quelle
$('#isAgeSelected').checked
?Die Verwendung des
Click
Ereignishandlers für die Checkbox-Eigenschaft ist unzuverlässig, da sich diechecked
Eigenschaft während der Ausführung des Ereignishandlers selbst ändern kann!Im Idealfall möchten Sie Ihren Code in einen
change
Ereignishandler einfügen , der jedes Mal ausgelöst wird, wenn der Wert des Kontrollkästchens geändert wird (unabhängig davon, wie er ausgeführt wird).quelle
.on()
Methode die bevorzugte Methode zum Anhängen von Ereignishandlern an ein Dokument.Verwenden:
Dies kann hilfreich sein, wenn Sie möchten, dass die erforderliche Aktion nur ausgeführt werden muss, wenn Sie das Kontrollkästchen nicht zum Zeitpunkt des Entfernens des Kontrollkästchens aktivieren.
quelle
Ich habe beschlossen, eine Antwort zu veröffentlichen, wie man genau dasselbe ohne jQuery macht. Nur weil ich ein Rebell bin.
Zuerst erhalten Sie beide Elemente anhand ihrer ID. Anschließend weisen Sie dem
onchange
Ereignis des Kontrollkästchens eine Funktion zu, die prüft, ob das Kontrollkästchen aktiviert wurde, und diehidden
Eigenschaft des Alterstextfelds entsprechend festlegt . In diesem Beispiel mit dem ternären Operator.Hier ist eine Geige, mit der Sie sie testen können.
Nachtrag
Wenn die browserübergreifende Kompatibilität ein Problem darstellt, schlage ich vor, die CSS-
display
Eigenschaft auf none und inline zu setzen .Langsamer, aber browserübergreifend kompatibel.
quelle
.hidden
ist nicht sehr browserübergreifend, obwohl mir diese Lösung gefällt :)style
. Das ist jedoch bedauerlich, da die.hidden
Leistung viel besser ist .Ich glaube, Sie könnten dies tun:
quelle
Ich bin auf genau das gleiche Problem gestoßen. Ich habe ein ASP.NET-Kontrollkästchen
Im jQuery-Code habe ich den folgenden Selektor verwendet, um zu überprüfen, ob das Kontrollkästchen aktiviert wurde oder nicht, und es scheint wie ein Zauber zu funktionieren.
Ich bin sicher, Sie können auch die ID anstelle der CssClass verwenden.
Ich hoffe das hilft dir.
quelle
Es gibt viele Möglichkeiten zu überprüfen, ob ein Kontrollkästchen aktiviert ist oder nicht:
Möglichkeit zur Überprüfung mit jQuery
Beispiel prüfen oder auch dokumentieren:
http://api.jquery.com/attr/
http://api.jquery.com/prop/
quelle
Dieser Code wird Ihnen helfen
quelle
Das funktioniert bei mir:
quelle
Dies ist eine andere Methode, um dasselbe zu tun:
quelle
Benutze das:
Die Länge ist größer als Null, wenn das Kontrollkästchen aktiviert ist.
quelle
Meine Vorgehensweise ist:
quelle
Dies wird zurückgegeben,
true
wenn die Eingabe aktiviert ist undfalse
nicht.quelle
.attr('checked')
dass es nicht immer den richtigen Status zurückgibt. Wie pro Salman A ‚s Antwort (und vielleicht auch andere‘), dann ist es eine sicherere Option zu nutzen ,.prop('checked')
statt. Außerdem ist es auch möglich,undefined
als zu deklarierenvar undefined = 'checked';
..prop('checked')
scheint jetzt eine bessere Antwort zu sein. Es war zu dem Zeitpunkt, als es geschrieben wurde, nicht so zuverlässig. Ich verstehe nicht und denke auch nicht, dass es eine gute Idee ist, undefiniert neu zu deklarieren.typeof (x) !== "undefined"
quelle
Sie können verwenden:
Beide sollten funktionieren.
quelle
1) Wenn Ihr HTML-Markup lautet:
attr verwendet:
Wenn Stütze verwendet wird:
2) Wenn Ihr HTML-Markup lautet:
attr verwendet:
Verwendete Requisite:
quelle
Dieses Beispiel ist für die Schaltfläche.
Versuche Folgendes:
quelle
Die Top-Antwort hat es nicht für mich getan. Dies tat jedoch:
Grundsätzlich wird beim Klicken auf das Element # li_13 mithilfe der
.attr('checked')
Funktion geprüft, ob das Element # zustimmen (das Kontrollkästchen) aktiviert ist . Wenn dies der Fall ist, wird das Element #saveForm eingeblendet, und wenn nicht, wird das Element saveForm ausgeblendet.quelle
Ich benutze dies:
quelle
Obwohl Sie eine JavaScript-Lösung für Ihr Problem vorgeschlagen haben (Anzeigen von a,
textbox
wenn acheckbox
istchecked
), kann dieses Problem nur durch CSS gelöst werden . Mit diesem Ansatz funktioniert Ihr Formular für Benutzer, die JavaScript deaktiviert haben.Angenommen, Sie haben den folgenden HTML-Code:
Sie können das folgende CSS verwenden, um die gewünschte Funktionalität zu erreichen:
In anderen Szenarien können Sie sich geeignete CSS-Selektoren vorstellen.
Hier ist eine Geige, um diesen Ansatz zu demonstrieren .
quelle
Umschalten: 0/1 oder sonst
quelle
Ich denke, es wird die einfache sein
quelle