W wersjach jQuery przed 1.6 użycia:
$('input[name="correctAnswer"]').attr('checked', false);
W wersjach jQuery po 1.6 powinieneś używać:
$('input[name="correctAnswer"]').prop('checked', false);
ale jeśli używasz wersji 1.6.1+, możesz użyć pierwszego formularza (patrz uwaga 2 poniżej).
Uwaga 1: ważne jest, aby drugi argument był fałszywy, a nie „fałsz”, ponieważ „fałsz” nie jest wartością fałszywą. to znaczy
if ("false") {
alert("Truthy value. You will see an alert");
}
Uwaga 2: W jQuery 1.6.0, istnieją obecnie dwa podobne metody, .attra .propktóre robią dwa podobne, ale nieco różne rzeczy. Jeśli w tym konkretnym przypadku powyższa rada zadziała, jeśli używasz wersji 1.6.1+. Powyższe nie będzie działać z 1.6.0, jeśli używasz 1.6.0, powinieneś zaktualizować. Jeśli chcesz poznać szczegóły, czytaj dalej.
Szczegóły: Podczas pracy z prostych elementów HTML DOM, istnieją właściwości związane z elementu DOM ( checked, type, value, etc), które stanowią interfejs do uruchomionego stanu strony HTML. Istnieje również interfejs .getAttribute/ .setAttribute, który zapewnia dostęp do wartości atrybutów HTML, jak podano w kodzie HTML. Przed wersją 1.6 jQuery zatarło to rozróżnienie, udostępniając jedną metodę .attr, aby uzyskać dostęp do obu typów wartości. jQuery 1.6+ udostępnia dwie metody .attri .propumożliwia rozróżnienie między tymi sytuacjami.
.propumożliwia ustawienie właściwości elementu DOM, a jednocześnie .attrumożliwia ustawienie wartości atrybutu HTML. Jeśli pracujesz ze zwykłym DOM i ustawiasz sprawdzoną właściwość elem.checkedna truelub falsezmieniasz bieżącą wartość (co widzi użytkownik), a zwrócona wartość śledzi stan na stronie. elem.getAttribute('checked')jednak zwraca tylko stan początkowy (i zwraca 'checked'lub w undefinedzależności od stanu początkowego z HTML). W wersji 1.6.1+ używanie .attr('checked', false)robi jedno elem.removeAttribute('checked')i drugie, a elem.checked = falseponieważ zmiana spowodowała wiele problemów ze zgodnością wsteczną i nie jest w stanie stwierdzić, czy chcesz ustawić atrybut HTML, czy właściwość DOM. Zobacz więcej informacji w dokumentacji .prop .
#(selector).prop('checked',true);kończy się niepowodzeniem, gdy następuje próba ustawienia kolejnego przycisku opcji w tej samej grupie na stan niezaznaczony. Sztuczka polega na tym, aby ustawić przycisk radiowy w stanie zaznaczonym i pozwolić grupie przycisków radiowych robić to, co robi (odznacz pozostałe ...) . Również dzwonienie$(selector).click();działa i wyzwala wszelkie zdarzenia towarzyszące.