Nas versões do jQuery anteriores à 1.6, use:
$('input[name="correctAnswer"]').attr('checked', false);
Nas versões do jQuery após a versão 1.6, você deve usar:
$('input[name="correctAnswer"]').prop('checked', false);
mas se você estiver usando 1.6.1+, poderá usar o primeiro formulário (consulte a nota 2 abaixo).
Nota 1: é importante que o segundo argumento seja falso e não "falso", pois "falso" não é um valor falso. ie
if ("false") {
alert("Truthy value. You will see an alert");
}
Nota 2: A partir do jQuery 1.6.0, agora existem dois métodos semelhantes, .attr
e .prop
que fazer duas coisas relacionadas, mas ligeiramente diferentes. Se, nesse caso em particular, as recomendações fornecidas acima funcionarem se você usar o 1.6.1+. O acima não funcionará com o 1.6.0, se você estiver usando o 1.6.0, atualize. Se você quiser os detalhes, continue lendo.
Detalhes: Ao trabalhar com elementos DOM HTML normal, há propriedades ligados ao elemento DOM ( checked
, type
, value
, etc), que fornece uma interface para o estado de execução da página HTML. Há também a interface .getAttribute
/ .setAttribute
que fornece acesso aos valores de atributo HTML, conforme fornecido no HTML. Antes da versão 1.6, o jQuery embaçava a distinção fornecendo um método,, .attr
para acessar os dois tipos de valores. O jQuery 1.6+ fornece dois métodos .attr
e .prop
é possível distinguir entre essas situações.
.prop
permite definir uma propriedade em um elemento DOM, enquanto .attr
permite definir um valor de atributo HTML. Se você estiver trabalhando com o DOM simples e definir a propriedade marcada,, elem.checked
para true
ou false
altere o valor em execução (o que o usuário vê) e o valor retornado rastreia o estado da página. elem.getAttribute('checked')
no entanto, retorna apenas o estado inicial (e retorna 'checked'
ou undefined
depende do estado inicial do HTML). No 1.6.1+, o uso de .attr('checked', false)
ambos elem.removeAttribute('checked')
e elem.checked = false
uma vez que a alteração causou muitos problemas de compatibilidade com versões anteriores, não é possível saber se você deseja definir o atributo HTML ou a propriedade DOM. Veja mais informações na documentação para .prop .
#(selector).prop('checked',true);
ocorrerá uma falha quando seguido pela tentativa de definir um botão de opção subsequente no mesmo grupo para um status não verificado. O truque é definir apenas o botão de opção para um estado verificado e deixar o grupo de botões de opção fazer o que faz (desmarque os outros ...) . Além disso, a chamada$(selector).click();
funciona e dispara todos os eventos associados.