2016-04-21 2 views
-3

ich dynamisch erstellen eine Reihe von Kontrollkästchen wie so:Wie kann ich feststellen, ob ein Kontrollkästchen in jQuery aktiviert ist?

@foreach (var rpt in reports) 
{ 
    @* convert id to lowercase and no spaces *@ 
    var morphedRptName = @rpt.report.Replace(" ", string.Empty).ToLower(); 
    <input class="leftmargin8, ckbx" id="[email protected](morphedRptName)" type="checkbox" value="@rpt.report" />@rpt.report 
} 

Ich habe diese Event-Handler, wo ich ihren Zustand bestimmen wollen - aktiviert oder deaktiviert:

$(".ckbx").change(function() { 
    if ($(this).checked) { 
     alert('checkbox is unchecked'); 
     checkboxSelected = false; 
     return; 
    } 
    alert('checkbox is checked'); 
    . . . 

jedoch die Bedingung " if ($ (this) .checked) "ist immer false, sowohl wenn ich eine Checkbox ankreuze, als auch, wenn ich sie nachträglich deaktiviere.

Also was muss ich tun, um festzustellen, wenn es deaktiviert ist? Ich probierte das zuerst aus: "Wenn (! $ (This) .checked)", aber das war genau das Gegenteil - die Bedingung war immer wahr.

+0

'if ($ (this) .is (": geprüft ")) {'? –

+1

Haben Sie darüber nachgedacht, die Frage vorher zu googlen? –

Antwort

1

$(this) ist jQuery-Objekt. Verwenden Sie einfach grundlegende JavaScript this statt wie folgt.

this.checked //instead of `$(this).checked`