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, .attr
a .prop
któ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 .attr
i .prop
umożliwia rozróżnienie między tymi sytuacjami.
.prop
umożliwia ustawienie właściwości elementu DOM, a jednocześnie .attr
umożliwia ustawienie wartości atrybutu HTML. Jeśli pracujesz ze zwykłym DOM i ustawiasz sprawdzoną właściwość elem.checked
na true
lub false
zmieniasz 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 undefined
zależ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 = false
ponieważ 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.