In Versionen von jQuery vor 1.6 Verwendung:
$('input[name="correctAnswer"]').attr('checked', false);
In Versionen von jQuery nach 1.6 sollten Sie verwenden:
$('input[name="correctAnswer"]').prop('checked', false);
aber wenn Sie verwenden 1.6.1+ Sie das erste Formular verwenden (siehe 2 Hinweis unten).
Anmerkung 1: es ist wichtig, dass das zweite Argument falsch und nicht "false" sein seit "false" kein falsy Wert ist. das heißt
if ("false") {
alert("Truthy value. You will see an alert");
}
Anmerkung 2: Ab jQuery 1.6.0, gibt es nun zwei ähnliche Verfahren .attr
und .prop
, die zwei verwandte, aber etwas andere Dinge zu tun. Wenn Sie in diesem speziellen Fall den Hinweis oben verwenden, wenn Sie 1.6.1+ verwenden. Das obige funktioniert nicht mit 1.6.0, wenn Sie 1.6.0 verwenden, sollten Sie ein Upgrade durchführen. Wenn Sie die Details möchten, lesen Sie weiter.
Details: Wenn mit geraden HTML DOM-Elementen arbeiten, geben es Objekte, die das Element DOM angebracht (checked
, type
, value
usw.), die eine Schnittstelle zum Betriebszustand der HTML-Seite zur Verfügung stellen. Es gibt auch die .getAttribute
/.setAttribute
Schnittstelle, die Zugriff auf die HTML-Attributwerte bietet, wie sie im HTML bereitgestellt werden. Vor 1.6 jQuery hat die Unterscheidung verwischt, indem eine Methode .attr
bereitgestellt wurde, um auf beide Arten von Werten zuzugreifen. jQuery 1.6+ bietet zwei Methoden, .attr
und .prop
, um zwischen diesen Situationen zu unterscheiden.
.prop
können Sie eine Eigenschaft für ein DOM-Element festlegen, während .attr
können Sie einen HTML-Attributwert festlegen. Wenn Sie mit einfachem DOM arbeiten und die geprüfte Eigenschaft elem.checked
auf true
oder false
setzen, ändern Sie den laufenden Wert (was der Benutzer sieht) und der zurückgegebene Wert verfolgt den Zustand der Seite. elem.getAttribute('checked')
gibt jedoch nur den Anfangszustand zurück (und gibt 'checked'
oder undefined
zurück, abhängig vom Anfangszustand aus dem HTML). In 1.6.1+ unter Verwendung von .attr('checked', false)
funktioniert sowohl elem.removeAttribute('checked')
als auch elem.checked = false
, da die Änderung eine Menge von Abwärtskompatibilitätsproblemen verursachte und es nicht wirklich feststellen kann, ob Sie das HTML-Attribut oder die DOM-Eigenschaft festlegen wollten. Weitere Informationen finden Sie unter documentation for .prop.
Wenn @ lambacck Antwort funktioniert nicht für Sie den Bug-Tracker auf der JQuery-Website [http://bugs.jquery.com/ticket/10910] zu sehen. Wenn Sie (wie ich war ...) eine Reihe von Optionsfeldern durchlaufen haben, um alle auf einen Standardwert zurückzusetzen, wird der '# (Selektor) .prop ('checked', true);' fehlgeschlagen, wenn er folgt Versuchen, einen nachfolgenden Optionsschalter in derselben Gruppe auf einen nicht markierten Status zu setzen. Der Trick besteht darin, den Radio-Button nur in einen aktivierten Status zu setzen und die Optionsfeld-Gruppe das tun zu lassen, was sie tut (deaktivieren Sie die anderen ...). Der Aufruf von '$ (selector) .click();' funktioniert ebenfalls und löst alle assoziierten Ereignisse aus. –