Desculpe pelo atraso na festa, mas vejo que há espaço para melhorias aqui. Não em relação ao "desabilitar caixa de texto", mas à seleção e simplificação do código do radionbox, tornando-o um pouco mais à prova de futuro, para alterações posteriores.
Em primeiro lugar, você não deve usar .each () e usar o índice para apontar um botão de rádio específico. Se você trabalhar com um conjunto dinâmico de botões de opção ou se adicionar ou remover alguns botões de opção posteriormente, seu código reagirá ao botão errado!
Em seguida, mas provavelmente não era o caso quando o OP foi feito, eu prefiro usar .on ('click', function () {...}) em vez de clicar ...
http: //api.jquery. com / em /
Lst mas não menos importante, também o código poderia ser feito mais simples e à prova de futuro, selecionando o botão de rádio com base em seu nome (mas que já apareceu em uma postagem).
Então acabei com o seguinte código.
HTML (baseado no código de okw)
<span id="radiobutt">
<input type="radio" name="rad1" value="1" />
<input type="radio" name="rad1" value="2" />
<input type="radio" name="rad1" value="3" />
</span>
<div>
<input type="text" id="textbox1" />
<input type="checkbox" id="checkbox1" />
</div>
Código JS
$("[name='rad1']").on('click', function() {
var disable = $(this).val() === "2";
$("#textbox1").prop("disabled", disable);
$("#checkbox1").prop("disabled", disable);
});
name
s podem ser idênticos, masid
s deve ser exclusivo.