2012-03-30 14 views
0

Ich muss einen Wert eines Kontrollkästchens mit JQuery abrufen. Wenn ich den unten stehenden Code ausprobiere, gab er immer "falsch" als Kontrollkästchen zurück, auch wenn ich das Kontrollkästchen aktiviere.Jquery Problem beim Abrufen eines überprüften Werts eines Kontrollkästchens

var result = $("#checkkBoxId").is(':checked'); 

Dann habe ich den anderen Weg ausprobiert, wie folgt. Aber es kam immer 'undefiniert' als Ergebnis zurück.

var result = $("#checkkBoxId").attr('checked'); 

Eine Idee, warum diese Codeteile nicht richtig funktionieren? Danke im Voraus.

+0

Sind Sie sicher, dass Sie die Checkbox richtig bekommen? –

+0

Ich stimme Caleb zu, sieht für mich aus, als ob du nicht das Element bekommen würdest. Sehen Sie diese Arbeitsgeige: http://jsfiddle.net/JXGhp/ – FlabbyRabbit

+0

Caleb Doucet und FlabbyRabbit - vielen Dank für Ihre schnellen Antworten. Ich bin mir ziemlich sicher, dass ich das Checkbox-Element richtig erkläre, weil ich es über das Visual Studio-Sofort-Fenster und die Quick-Watch-Funktion überprüft habe. Aber als ich das Ergebnis von $ überprüfte ("# checkkBoxId"). Attr ('checked'); heißt es, dass der Attr ist undefiniert. – Sugandika

Antwort

0

Es sieht eher nach einem Problem aus, haben Sie den richtigen Variablennamen? Benutzer-Entwickler-Tools oder Firebug, um sicherzustellen, dass Sie den richtigen ID-Namen haben. Wenn Sie es nicht auf den Client-Modus von statisch eingestellt haben, wird es mit einem anderen ID-Namen über den Browser gerendert.

Teilen Sie den Code des Kontrollkästchens?

+0

Vielen Dank für Ihre Antwort. Ich habe Firebug und das Visual Studio Sofort-Fenster und Quick-Watch verwendet, um sicherzustellen, ob ich das Checkbox-Element richtig bekomme. Und ich konnte sicherstellen, dass das Element korrekt zurückgegeben wird, wenn ich $ ("# checkkBoxId") im unmittelbaren Fenster eintippe. Aber als ich das Ergebnis von $ überprüfte ("# checkkBoxId"). Attr ('checked'); es besagt, dass der Attr nicht definiert ist. – Sugandika

0

Es klingt wie die ID des Elements falsch ist. Wahrscheinlich gibt es einen Tippfehler: check * k * BoxId in der ID des Kontrollkästchens.

1

Ich würde ziemlich sicher sein, dass das Problem ist, dass das Element, das Ihr Selektor entspricht, nicht existiert oder kein Kontrollkästchen ist. Ist das Doppel "k" in Ihrem Selektor ein Tippfehler?

Nebenbei, ich fordere Sie dringend auf, checkness eines einzigen Kontrollkästchens zu überspringen, jQuery und gehen Sie direkt für die DOM boolean checked Eigenschaft, die möglicherweise nicht einfacher zu bedienen oder zuverlässiger sein könnte.

SO regelmäßige Andy E hat eine relevant blog post about this kind of thing.

var result = $("#checkkBoxId")[0].checked; 
Verwandte Themen