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

isso é Jquery! <_<

É só voce baixar o Jquery no site do Jquery e chamar ele no HTML por exemplo:

<script type="text/javascript" src="jquery.js"></script>
ou voce pode chamar pelo site do google
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

só colocar no seu HTML, e usar normal dentro de uma tag "<script>" o código que voce achou!

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

  • 0
isso é Jquery! <_<

É só voce baixar o Jquery no site do Jquery e chamar ele no HTML por exemplo:

&lt;script type="text/javascript" src="jquery.js"></script>
ou voce pode chamar pelo site do google
&lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
só colocar no seu HTML, e usar normal dentro de uma tag "&lt;script>" o código que voce achou!
tentei aqui mas não funcionou... usei a seguinte estrutura:
<html> 
<head> 
       <title>Exemplo para desabilitar radio butons</title> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
$('input:radio').click(function(){
    $(this).attr('disabled', true);
});
</script>

<script> 
//Desativa o radio button com o ID botaoADesativar
$('#botaoADesativar').attr('disabled',true);
</script> 
</head> 

<body> 
<form>
    <fieldset name="radio_grupo_1">
        <input type="radio" id="1">Teste UM<br />
        <input type="radio" id="2">Teste DOIS<br />
        <input type="radio" id="3">Teste TRES<br />
        <input type="radio" id="4">Teste QUATRO<br />
    </fieldset>
</form>​
</body> 
</html>

e ficou assim:

http://www.cursomaxwell.net/portal/?page_id=760

deveria ficar assim: http://jsfiddle.net/gPfLB/1/

:wacko: preciso de ajuda no codigo na página.. não ta carregando o script...

Link para o comentário
Compartilhar em outros sites

  • 0

Mano desculpa, eu pensei que ia funcionar.

Mas como tambem não sei mexer com Jquery.

Ta ai em Javascript o código, se voce estiver com pressa, mas se não, tenta aprender a como usar o Jquery, me parece bem util, porque eu tive escrever muito mais que ele ;)

<script>
window.onload = function(){
    input = document.getElementsByTagName("input");
    for(i=0;i<input.length;i++){
    document.getElementsByTagName("input").item(i).onchange = desativa;
    }
}

function desativa(){
    for(i=0;i<input.length;i++){
    document.getElementsByTagName("input").item(i).disabled = "disabled";    
    }
}
 </script>

Link para o comentário
Compartilhar em outros sites

  • 0
Mano desculpa, eu pensei que ia funcionar.

Mas como tambem não sei mexer com Jquery.

Ta ai em Javascript o código, se voce estiver com pressa, mas se não, tenta aprender a como usar o Jquery, me parece bem util, porque eu tive escrever muito mais que ele ;)

&lt;script>
window.onload = function(){
    input = document.getElementsByTagName("input");
    for(i=0;i<input.length;i++){
    document.getElementsByTagName("input").item(i).onchange = desativa;
    }
}

function desativa(){
    for(i=0;i<input.length;i++){
    document.getElementsByTagName("input").item(i).disabled = "disabled";    
    }
}
 </script>
só tem um problema nesse java script... ele bloqueia todas as caixas da pag e não as delimitadas pelo "fieldset" como no link... olha como ficou: http://www.cursomaxwell.net/portal/?page_id=760 ele simplesmente bloqueita tudo após o clique... eu queria que bloqueasse apenas o delimitado pelo <fieldset></fieldset> como:
<fieldset><strong> <input type="radio" name="q1" value="a" /> </strong>(A)<strong> <input type="radio" name="q1" value="b" /> </strong>(B)&nbsp;

<input type="radio" name="q1" value="c" />(C)&nbsp;

<input type="radio" name="q1" value="d" />(D)&nbsp;

<input type="radio" name="q1" value="e" />(E)</fieldset>
Nome:
<input type="text" name="Nome (lista)" />

obrigado

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

  • 0

Ele vai bloquear todos os elementos que tiverem o nome q1. :lol:

window.onload = function(){
q1 = document.getElementsByName("q1");
for(i=0;i<q1.length;i++){
    q1.item(i).onchange = desativa;
}
}
function desativa(){
for(i=0;i<q1.length;i++){
    q1.item(i).disabled = true;
}
}

Link para o comentário
Compartilhar em outros sites

  • 0
Ele vai bloquear todos os elementos que tiverem o nome q1. :lol:

window.onload = function(){
q1 = document.getElementsByName("q1");
for(i=0;i<q1.length;i++){
    q1.item(i).onchange = desativa;
}
}
function desativa(){
for(i=0;i<q1.length;i++){
    q1.item(i).disabled = true;
}
}

amigo como aplica isso a varios elementos.... onde eu adiciono "virgula" tipo q1,q2,q3...

porque se fizer vários scripts da erro, e só funciona com 1.

Link para o comentário
Compartilhar em outros sites

  • 0

sei que dá pra fazer por "Array" mas não to acertando :angry: ... tenho que fazer do q1,q2... até o q40.

resumindo, o código que você me deu é muitútil, porém eu queria queele funcionasse para vários elementos... tem como?

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

  • 0

Não é muito dificil fazer, quando eu caio nesse tipo de situação, eu faço manualmente, até uns 3 ou 4, e depois eu vejo se posso diminuir o código.

Então se voce for colocar 40 questões na mesma página, usa isso:

<script>
window.onload = function(){
n = 40; // Numero de questões
questao = new Array;

for(i=1;i<(n+1);i++){

questao += document.getElementsByName(("q"+i));

for(j=0;j<q.length;j++){
    questao[i].item(j).onchange = desativa(questao[i]);
}
}

function desativa(questao){
 for(i=0;i<questao.length;i++){
   questao.item(i).disabled = true;
 }
}
   </script>

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

  • 0

Tipo, to fazendo um simulado online... já ta tudo "ok" a única parte que falta é bloquear as check box após o clique....

o código para bloquear uma questão que você me deu é maravilhoso, mas se eu adicionar mais de uma vez só funciona o ultimo que coloquei na página. Resumindo, só funciona um javascript por vez e como eu quero colocar 40, não tem como.

tentei apelar pra array, mas não consigo desenvolver o código certo.

a página que quero fazer é essa: http://www.cursomaxwell.net/portal/?page_id=66

e o código utilizado é esse:

[spolier]

<blockquote class="topoc2">
<div id="imgmenuheight">

<img src="http://downloads.passeiweb.com/imagens/newsite/simulados/topo.jpg" alt="" />

&nbsp;


</div>
<h3>Matemática 5</h3>
</blockquote>
<blockquote class="txt"><form action="http://cursomaxwell.net/cgi-sys/FormMail.cgi" method="post" name="form"><strong>01.</strong> (MACKENZIE) Numa universidade, no vestibular do ano passado, houve
uma média de 8 candidatos por vaga oferecida. Neste ano, com um aumento de 20%
no número de candidatos e de t% no número de vagas, a relação média de candidatos
por vaga passou a ser 7,5. O valor de t é:<strong>
<fieldset name="radio_grupo_1">
<input type="radio" name="q1" value="a" />
</strong>(A) 22

<strong>
<input type="radio" name="q1" value="b" />
</strong>(B) 24

<strong>
<input type="radio" name="q1" value="c" />
</strong>(C) 26

<strong>
<input type="radio" name="q1" value="d" />
</strong>(D) 28

<strong>
<input type="radio" name="q1" value="e" />
</strong>(E) 30
<fieldset/>

<strong>02.</strong> (FUND.CARLOS CHAGAS)
A média aritmética dos elementos de um conjunto de 28 números é de 27. Se retirarmos
desse conjunto três números, de valores 25, 28 e 30, a média aritmética dos
elementos do novo conjunto será:

<strong>
<input type="radio" name="q2" value="a" />
</strong>(A) 26,92

<strong>
<input type="radio" name="q2" value="b" />
</strong>(B) 26,28

<strong>
<input type="radio" name="q2" value="c" />
</strong>(C) 26,62

<strong>
<input type="radio" name="q2" value="d" />
</strong>(D) 26,38

<strong>
<input type="radio" name="q2" value="e" />
</strong>(E) 25,48

<strong>03. </strong>(UBERABA) Comprei 5 doces
a R$ 1,80 cada um, 3 doces a R$ 1,50 cada um e 2 doces a R$ 2,50 cada um. O
preço médio, por doce, foi de:

<strong>
<input type="radio" name="q3" value="a" />
</strong>(A) R$ 1,75

<strong>
<input type="radio" name="q3" value="b" />
</strong>(B) R$ 1,85

<strong>
<input type="radio" name="q3" value="c" />
</strong>(C) R$ 1,93

<strong>
<input type="radio" name="q3" value="d" />
</strong>(D) R$ 2,00

<strong>
<input type="radio" name="q3" value="e" />
</strong>(E) R$ 2,90

<strong>04. </strong>(FUND.CARLOS CHAGAS) Tem-se
500 mil de soro glicosado a 5%. Quando se acrescentam 10 (dez) ampolas de 10
ml cada uma de glicose a 23%, a concentração do volume final do soro glicosado
será:

<strong>
<input type="radio" name="q4" value="a" />
</strong>(A) 6%

<strong>
<input type="radio" name="q4" value="b" />
</strong>(B) 6,3%

<strong>
<input type="radio" name="q4" value="c" />
</strong>(C) 7,3%

<strong>
<input type="radio" name="q4" value="d" />
</strong>(D) 8%

<strong>
<input type="radio" name="q4" value="e" />
</strong>(E) n.d.a.

<strong>05.</strong> (FUVEST) Numa população,
a razão do número de mulheres para o de homens é de 11 para 10. A idade média
das mulheres é de 34 e a idade média da população é aproximadamente:

<strong>
<input type="radio" name="q5" value="a" />
</strong>(A) 32,90 anos

<strong>
<input type="radio" name="q5" value="b" />
</strong>(B) 32,95 anos

<strong>
<input type="radio" name="q5" value="c" />
</strong>(C) 33,00 anos

<strong>
<input type="radio" name="q5" value="d" />
</strong>(D) 33,05 anos

<strong>
<input type="radio" name="q5" value="e" />
</strong>(E) 33,10 anos

<strong>06. </strong>(FUND.CARLOS CHAGAS) 1
g/cm³ é igual a:

<strong>
<input type="radio" name="q6" value="a" />
</strong>(A) 1 kg/m³

<strong>
<input type="radio" name="q6" value="b" />
</strong>(B) 10<sup>6</sup> kg/m³

<strong>
<input type="radio" name="q6" value="c" />
</strong>(C) 10³ kg/m³

<strong>
<input type="radio" name="q6" value="d" />
</strong>(D) 10<sup>-1</sup> kg/litro

<strong>
<input type="radio" name="q6" value="e" />
</strong>(E) nada

<strong>07.</strong> (UDF) Um estado brasileiro
tem a população de 10 milhões de habitantes e uma média de 40 habitantes por
km². Qual é a sua superfície?

<strong>
<input type="radio" name="q7" value="a" />
</strong>(A) 100.000 km²

<strong>
<input type="radio" name="q7" value="b" />
</strong>(B) 250.000 km²

<strong>
<input type="radio" name="q7" value="c" />
</strong>(C) 500.000 km²

<strong>
<input type="radio" name="q7" value="d" />
</strong>(D) 1.000.000 km²

<strong>
<input type="radio" name="q7" value="e" />
</strong>(E) nada

<strong>08. </strong>(PUC) Os pontos A(3; 5),
B(1; -1) e C(x; - 16) pertencem a uma mesma reta, se x for igual a

<strong>
<input type="radio" name="q8" value="a" />
</strong>(A) -5

<strong>
<input type="radio" name="q8" value="b" />
</strong>(B) -1

<strong>
<input type="radio" name="q8" value="c" />
</strong>(C) -3

<strong>
<input type="radio" name="q8" value="d" />
</strong>(D) -4

<strong>
<input type="radio" name="q8" value="e" />
</strong>(E) -2

<strong>09. </strong>(UNIB) A área do triângulo
cujos vértices, no plano cartesiano, são A(1; 3), B(6; 5) e C(4; 3) é em cm²
igual a

<strong>
<input type="radio" name="q9" value="a" />
</strong>(A) 3

<strong>
<input type="radio" name="q9" value="b" />
</strong>(B) 4

<strong>
<input type="radio" name="q9" value="c" />
</strong>(C) 5

<strong>
<input type="radio" name="q9" value="d" />
</strong>(D) 6

<strong>
<input type="radio" name="q9" value="e" />
</strong>(E) 7

<strong>10. </strong>(FMU) O ponto (3; -2) pertence à reta 2x - 5y + b = 0; então, b é igual a

<strong>
<input type="radio" name="q10" value="a" />
</strong>(A) 16

<strong>
<input type="radio" name="q10" value="b" />
</strong>(B) -4

<strong>
<input type="radio" name="q10" value="c" />
</strong>(C) -16

<strong>
<input type="radio" name="q10" value="d" />
</strong>(D) 4

<strong>
<input type="radio" name="q10" value="e" />
</strong>(E) 19

Nome: <input type="text" name="Nome (lista)" />

Matricula: <input type="text" name="Matricula" />

<input type="hidden" name="recipient" value="Simulados@cursomaxwell.net" />
<input type="hidden" name="subject" value="Lista simulado" />
<input type="hidden" name="redirect" value="http://www.cursomaxwell.net/portal/?page_id=708" />
<input type="submit" name="Submit" value="Finalizar simulado" />

</form></blockquote>

[/spolier]

é isso. falta só bloqueio de alternativa por questão ;)

Link para o comentário
Compartilhar em outros sites

  • 0

Mano desculpa pelo tamanho do código!

Talvez se utilizase orientação a objeto ficaria menor, mas eu to aprendendo isso ainda, e não consegui colocar neste script.

Ficou grande, mas foi o menor que eu consegui :D


&lt;script>
window.onload = function(){
n = 10; // numero de questões
q1 = document.getElementsByName("q1");
q2 = document.getElementsByName("q2");
q3 = document.getElementsByName("q3");
q4 = document.getElementsByName("q4");
q5 = document.getElementsByName("q5");
q6 = document.getElementsByName("q6");
q7 = document.getElementsByName("q7");
q8 = document.getElementsByName("q8");
q9 = document.getElementsByName("q9");
q10 = document.getElementsByName("q10");
q = new Array(q1,q2,q3,q4,q5,q6,q7,q8,q9,q10);
for(i=0;i<q[0].length;i++){
q[0].item(i).onchange = function(){desativa(q[0]);};
}
for(i=0;i<q[1].length;i++){
q[1].item(i).onchange = function(){desativa(q[1]);};
}
for(i=0;i<q[2].length;i++){
q[2].item(i).onchange = function(){desativa(q[2]);};
}
for(i=0;i<q[3].length;i++){
q[3].item(i).onchange = function(){desativa(q[3]);};
}
for(i=0;i<q[4].length;i++){
q[4].item(i).onchange = function(){desativa(q[4]);};
}
for(i=0;i<q[5].length;i++){
q[5].item(i).onchange = function(){desativa(q[5]);};
}
for(i=0;i<q[6].length;i++){
q[6].item(i).onchange = function(){desativa(q[6]);};
}
for(i=0;i<q[7].length;i++){
q[7].item(i).onchange = function(){desativa(q[7]);};
}
for(i=0;i<q[8].length;i++){
q[8].item(i).onchange = function(){desativa(q[8]);};
}
for(i=0;i<q[9].length;i++){
q[9].item(i).onchange = function(){desativa(q[9]);};
}
}

function desativa(q){
for(i=0;i<q.length;i++){
q.item(i).disabled = true;
}
}
</script>
[/codebox]

É só colar nessa página do seu ultimo post!

E mano esse projeto é seu ou voce esta trabalhando para a escola?

Ah e um errinho no site, la encima onde esta a lista { home, home, loja virtual ....} as palavras foram absorvidas pelo preto do background, alem de ter 2 homes!!!!

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

  • 0

O preto é pra "sobrescrever" mesmo, tipo, vai aparecer nas pesquisas do Google mas ta lá só pra "enfeite"... até porque cada pagina daquela tem um link apontando pra ela em algum lugar do site, a intenção era essa mesmo. =)

quanto a Home,Home. é porque um é nativo do tema, então eu tenho que trocar ainda, e tirar o link o nativo. ;)

Esse site é um projeto da empresa de um amigo meu, como eu to trabalhando ainda, eu to meio ocupado, mas depois que eu ficar livre, vou melhorar esses detalhes e fazer sub sites pra certas funções como video aulas e simulados, porque essas categorias só aparecem pra membros do curso =)

Obrigado por tudo, me ajudou muito esse teu código, porque com a base dele posso fazer para as 40 questões eu quero. :)

vlw.

Link para o comentário
Compartilhar em outros sites

  • 0

manolo, tem um erro nesse código, quando eu uso ele os elementos (id's) que form aplicados não são enviados....

por exemplo, marquei letra "b" na questão, mas na hora de que clico em enviar não aparece o imput da questão.

e o problema é depois que utiliza o código, porque eu fiz o teste sem o código em javascript e funcionou normal, apareceu o imput de cada questão certinho.

ajuda aew :wacko:

Link para o comentário
Compartilhar em outros sites

  • 0

Mano, to sem tempo, mas voce pode fazer uma bambiara...

olha essa parte do código:

for(i=0;i<q[0].length;i++){

// Aqui significa, quando a pessoa clicar qualquer opção da questão 1, ele vai executar a função desativa, e tambem vai levar para ele qual questão que é!

q[0].item(i).onchange = function(){desativa(q[0]);};

}

Tenta fazer assim, ao invés de desativar a questão, faça aparecer uma DIV, com opacidade 25%, e backgroud de cinza, com z-index 1; para ficar na frente, assim a pessoa não pode clicar, e não vai dar erro no script do formulario.

O erro que deu, eu acho que entendi, mas não sei como resolver (to sem tempo)...

Voce tem que pegar o campo que a pessoa digitou, e passar pro seu php, atravez de variaveis do javascript.

Link para o comentário
Compartilhar em outros sites

  • 0
Mano, to sem tempo, mas voce pode fazer uma bambiara...

olha essa parte do código:

for(i=0;i<q[0].length;i++){

// Aqui significa, quando a pessoa clicar qualquer opção da questão 1, ele vai executar a função desativa, e tambem vai levar para ele qual questão que é!

q[0].item(i).onchange = function(){desativa(q[0]);};

}

Tenta fazer assim, ao invés de desativar a questão, faça aparecer uma DIV, com opacidade 25%, e backgroud de cinza, com z-index 1; para ficar na frente, assim a pessoa não pode clicar, e não vai dar erro no script do formulario.

O erro que deu, eu acho que entendi, mas não sei como resolver (to sem tempo)...

Voce tem que pegar o campo que a pessoa digitou, e passar pro seu php, atravez de variaveis do javascript.

oproblema é que eu nem fazer essa 'bambiara' sei fazer... o qu eu edito no código e o que eu coloco no lugar da função desativa?

vlw

Link para o comentário
Compartilhar em outros sites

  • 0

Cria o mesmo numero de divs que o numero de questões,

para cada id coloca, isso:

<style>
    height:150px;
    width:100px;
    position:absolute;

/*  O TOP voce muda! de acordo com a posição de cada questão*/
    top:10px;
/* Se necessario coloca um left:  */
    visibility:hidden;
    opacity:0.1;
    background:gray;
</style>
No java script:
// Corrija do código anterior         Tire o q[0] e coloque somente o numero, em todos os casos
q[0].item(i).onchange = function(){desativa(0);};

function desativa(n){
    q = new Array("questão1","questão2","questão3","questão4","questão5","questão6","questão7","questão8","questão9");
    document.getElementById(q[n]).style.visibility = "visible";
}

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

  • 0

Olha o exemplo, mano, era isso que eu queria dizer

<!DOCTYPE>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sem título</title>
</head>
<style>
#q1{
    height:200px;
    width:100px;
    position:absolute;
    top:35px;
    visibility:hidden;
    opacity:0.1;
    background:gray;
}
</style>
<script>
window.onload = function(){
n = 1; // numero de questões
q1 = document.getElementsByName("questao1");

q = new Array(q1);

for(i=0;i<q[0].length;i++){
q[0].item(i).onchange = function(){desativa(0);};
}
}
function desativa(n){
    q = new Array("q1","q2","q3","q4","q5","q6","q7","q8","9");
    document.getElementById(q[n]).style.visibility = "visible";
}
</script>
<body>
<div id="q1"></div>
<p>1) Questão Questão Questão Questão</p>
<p>
<input type="radio" name="questao1" />A
</p>
<p>
<input type="radio" name="questao1" />B
</p>
<p>
<input type="radio" name="questao1" />C
</p>
<p>
<input type="radio" name="questao1" />D
</p>
<p>
<input type="radio" name="questao1" />E
</p>
</body>
 </html>

Link para o comentário
Compartilhar em outros sites

  • 0

GRANDE DICA:

Qualquer pessoa com um conhecimento relativo em javascript pode burlar isso. Se você pretende fazer alguma coisa para seus alunos valendo nota, fazer "medidas de segurança" com javascript é um péssima idéia.

Link para o comentário
Compartilhar em outros sites

  • 0
Olha o exemplo, mano, era isso que eu queria dizer

<!DOCTYPE>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sem título</title>
</head>
<style>
#q1{
    height:200px;
    width:100px;
    position:absolute;
    top:35px;
    visibility:hidden;
    opacity:0.1;
    background:gray;
}
</style>
&lt;script>
window.onload = function(){
n = 1; // numero de questões
q1 = document.getElementsByName("questao1");

q = new Array(q1);

for(i=0;i<q[0].length;i++){
q[0].item(i).onchange = function(){desativa(0);};
}
}
function desativa(n){
    q = new Array("q1","q2","q3","q4","q5","q6","q7","q8","9");
    document.getElementById(q[n]).style.visibility = "visible";
}
</script>
<body>
<div id="q1"></div>
<p>1) Questão Questão Questão Questão</p>
<p>
<input type="radio" name="questao1" />A
</p>
<p>
<input type="radio" name="questao1" />B
</p>
<p>
<input type="radio" name="questao1" />C
</p>
<p>
<input type="radio" name="questao1" />D
</p>
<p>
<input type="radio" name="questao1" />E
</p>
</body>
 </html>

poxa mano, não funcionou.. não sei mas o que eu faço, to ficando desesperado já :/, se puder me ajudar agradeço muito...

já que quando desabilita ele não envia os dados a melhor forma seria por algo na frente impedindo o clique, como a sua ideia, mas não ta dando certo, se tiver alguma sugestão por favor me ajuda ...

Achei isso na net:

"

onDblClick

Executa um código JavaScript quando um duplo clique é dado no objeto. Usado para document, Link, na forma onDblClick="algumaCoisa", onde "algumaCoisa" é uma função ou código de JavaScript.

Exemplo:

<form>

<INPUT Type="button" Value="Teste" onDblClick="alert('Foi dado um duplo clique')">

</form>

" talvez ajude ;)

Link para o comentário
Compartilhar em outros sites

  • 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.

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...