Eu tenho três botões de opção com o mesmo nome e valores diferentes. Quando eu clico no terceiro botão de opção, a caixa de seleção e a caixa de texto serão desabilitadas. Mas quando eu escolher outros dois botões de opção, ele deve ser mostrado. Preciso da ajuda no Jquery. Obrigado em avançar....
<form name="checkuserradio">
<input type="radio" value="1" name="userradiobtn" id="userradiobtn"/>
<input type="radio" value="2" name="userradiobtn" id="userradiobtn"/>
<input type="radio" value="3" name="userradiobtn" id="userradiobtn"/>
<input type="checkbox" value="4" name="chkbox" />
<input type="text" name="usertxtbox" id="usertxtbox" />
</form>
name
s podem ser idênticos, masid
s deve ser exclusivo.Respostas:
HTML
Javascript
fonte
i
é transmitidofunction(i)
via JQueryeach()
.i==2
é usado para acessar o terceiro botão de opção. Consulte meus códigos.<span id="radiobutt">
- Primo do RadioHead?Não é realmente necessário, mas uma pequena melhoria no código do okw que tornaria a chamada de função mais rápida (já que você está movendo a condicional para fora da chamada de função).
fonte
Este tópico é um pouco antigo, mas as informações devem ser atualizadas.
http://api.jquery.com/attr/
fonte
removeProp
para a propriedade desativada. Os documentos do jQuery dizem para usar em seuprop("disabled", false);
lugar. api.jquery.com/prop/#prop-propertyName-valueNão sei por que algumas dessas soluções usam .each () - não é necessário.
Aqui está um código de trabalho que desativa se a terceira caixa de seleção for clicada, caso contrário, remove o atributo desativado.
Nota: Eu adicionei um id à caixa de seleção. Além disso, lembre-se de que os ids devem ser exclusivos em seu documento, portanto, remova os ids dos botões de opção ou torne-os exclusivos
fonte
each()
foi usado porque queremos o terceiro botão de opção. Podemos usar$("input[type=radio]:eq(2)")
também. Seu método identifica o botão de opção por valor, o que, obviamente, também é válido. :)Eu sei que não é um bom hábito responder a uma pergunta antiga, mas estou colocando esta resposta para as pessoas que veriam a pergunta depois.
A melhor maneira de alterar o estado em JQuery agora é por meio
Por favor, verifique este link para ilustração completa. Desativar / ativar uma entrada com jQuery?
fonte
Eu teria feito um pouco diferente
Observe o atributo de classe
Desta forma, se você precisar adicionar mais botões de rádio, não precisa se preocupar em alterar o javascript
fonte
Suponho que você provavelmente deseja vincular um evento de "clique" a vários botões de opção, ler o valor do botão de opção clicado e, dependendo do valor, desabilitar / habilitar uma caixa de seleção e / ou caixa de texto.
fonte
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)
Código JS
fonte
MVC 4 @ Html.CheckBoxFor geralmente as pessoas querem uma ação marcando e desmarcando a caixa de seleção mvc.
você pode definir o id para os controles que deseja alterar e em javascript fazer o seguinte
você também pode alterar a propriedade como
fonte
Exibir trecho de código
fonte
obtém o valor dos botões de opção e corresponde a cada um se for 3 e então desativado
checkbox and textbox
.fonte