Ir para conteúdo
Fórum Script Brasil
  • 0

Desabilitar RADIO com RADIO BUTTON após clique.


Markuz

Pergunta

Gostaria de saber se alguém sabe como fazer uma forma em Java Script. Segue abaixo as explicações:

Eu quero que seja feito o bloqueio por clique para apenas um por "questão", tipo, clicou uma vez e não tem como trocar.

Me forneceram um código, mas eu não consigo usa-ló no wordpress.

é esse:

$('input:radio').click(function(){
    $(this).attr('disabled', true);
});

e funciona muito bem, olha na pagina: http://jsfiddle.net/gPfLB/1/

gostaria de saber como faze-ló em wordpress... já tentei de tudo, mas não consigo usa-ló em meu tema... sou leigo em wordpress por isso preciso de ajuda.

Muito obrigado.

Editado por Markuz
Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0
Markuz, porque o código do Arash não resolve seu problema? Aqui pareceu funcionar de boa.

De qualquer forma, aqui vai outra "solução":

window.onload = function(){

    var lista = document.getElementsByTagName('input');
    for (var i = 0; i < lista.length; i++) {
        var input = lista[i];
        if (input.className == 'respostaUnica') {
            input.onchange = function() {
                var nome = this.name;
                var outros = document.getElementsByName(nome);
                for (var j = 0; j < outros.length; j++) {
                    var outro = outros[j];
                    if (outro != this) outro.disabled = true;
                }
            }
        }
    }
    
}
Você deve adicionar class='respostaUnica' em todos os seus radios de resposta.
você quer dizer assim:
<input type="radio" class="<input type="radio" class="radio" /> " />

?

se for me da um exemplo de um form com essa class. porque minha duvida é a seguinte: se eu vou usar esse código, então ele vai bloquear todos os campos de preenchimento do site? ou tem como fazer ele funcionar apenas para um "id"?

Link para o comentário
Compartilhar em outros sites

  • 0
você quer dizer assim:

<input type="radio" class="<input type="radio" class="radio" /> " />
Wtf? Assim ó:
<input type="radio" class="respostaUnica" name='questaoTal' />

Sobre sua pergunta... Que bom, você tentou entender o código pelo menos lol. Mas não, ele só vai bloquear as OUTRAS opções da MESMA questão (se baseando no name dos radios).

Link para o comentário
Compartilhar em outros sites

  • 0

Li sim. Mas imagina uma coisa:

Questão 1

a ()

b (x)

c ()

d ()

Questão 2

a ()

b ()

c ()

d (x)

------------------------------------------------------

O cara fez suas escolhas, mas ainda não mandou enviar o resultado certo ?

Ai ele resolve dar uma conferida nas respostas e percebe que na Questão 1 a resposta certa seria a letra C.

Como ele vai trocar sua opção se o radio estiver desabilitado ?

Link para o comentário
Compartilhar em outros sites

  • 0
Li sim. Mas imagina uma coisa:

Questão 1

a ()

b (x)

c ()

d ()

Questão 2

a ()

b ()

c ()

d (x)

------------------------------------------------------

O cara fez suas escolhas, mas ainda não mandou enviar o resultado certo ?

Ai ele resolve dar uma conferida nas respostas e percebe que na Questão 1 a resposta certa seria a letra C.

Como ele vai trocar sua opção se o radio estiver desabilitado ?

,

essa é a intenção, é como um cartão resposta de uma prova, impossível de trocar ;)

por isso fiz tanta questão dessa "desabilitação" :)

você quer dizer assim:

<input type="radio" class="<input type="radio" class="radio" /> " />
Wtf? Assim ó:
<input type="radio" class="respostaUnica" name='questaoTal' />

Sobre sua pergunta... Que bom, você tentou entender o código pelo menos lol. Mas não, ele só vai bloquear as OUTRAS opções da MESMA questão (se baseando no name dos radios).

Ficou perfeito mano, sem nenhum problema mesmo, já testei tudo e todas as possibilidades... me ajudou muito :wub:

Link para o comentário
Compartilhar em outros sites

  • 0

Em eu tava sem fazer nada, então resolvi criar um código completo para esse problema.

Ele bloqueia todos os inputs de uma determinada pergunta, como é o nosso caso.

Traduzindo para o HTML, os inputs de cada questão devem ter o mesmo nome, para que haja escolha, aproveitando-se dessa propriedade,

Ao clicar no input de uma determinada questão, ele prontamente ira bloquear todos os inputs da questão.

<script>
/*global document:true,window:true */
/* Author: Arash Kaffashi */

var i, input;

function quandomudar() {
    "use strict";
    var name, objeto;
    input = document.getElementsByTagName("input");
    for (i = 0; i < input.length; i += 1) {
        if (input.item(i).checked === true && input.item(i).disabled === false) {
            name = input.item(i).getAttribute("name");
        }
    }
    objeto = document.getElementsByName(name);
    for (i = 0; i < objeto.length; i += 1) {
        objeto.item(i).disabled = true;
    }
}

window.onload = function () {
    "use strict";
    input = document.getElementsByTagName("input");
    for (i = 0; i < input.length; i += 1) {
        input.item(i).onchange = quandomudar;
    }
};
 </script>
Agora em Jquery fica assim:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
 <script>
$(document).ready(function() {
$('input:radio').click(function(){
    var nome;
    nome = $(this).attr("name");
    $("[name = "+nome+"]").attr('disabled', true);
});
});
 </script>

E esta funcionando!

Se puderem testar e avaliar !

Editado por Arash
Link para o comentário
Compartilhar em outros sites

  • 0
essa é a intenção, é como um cartão resposta de uma prova, impossível de trocar

por isso fiz tanta questão dessa "desabilitação"

Como eu falei, não é impossível de trocar. Qualquer usuário com um conhecimento relativamente avançado de javascript consegue burlar isso.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...