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, .attre .propque 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/ .setAttributeque 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,, .attrpara acessar os dois tipos de valores. O jQuery 1.6+ fornece dois métodos .attre .propé possível distinguir entre essas situações.
.proppermite definir uma propriedade em um elemento DOM, enquanto .attrpermite definir um valor de atributo HTML. Se você estiver trabalhando com o DOM simples e definir a propriedade marcada,, elem.checkedpara trueou falsealtere 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 undefineddepende do estado inicial do HTML). No 1.6.1+, o uso de .attr('checked', false)ambos elem.removeAttribute('checked')e elem.checked = falseuma 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.