Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Insert

Validar radiobuttons

Recommended Posts

Pessoal tenho num form radiobutton que vem do banco de dados.Como posso fazer para saber se eles foram marcados? isso seria para nao deixar submeter o form ou seja, se nenhum dos radio button com tal nome form marcado o form nao envia, eu ja tenho isso pronto mas com input.E outra como poderia fazer para pegar o valor do radio button marcado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para verificar se o radiobutton está marcado o codigo:

ex.:

<input type=radio name=nometal value=1>numero 1<input type=radio name=nometal value=2>numero 2<input type=radio name=nometal value=3>numero 3

Note que todos os radios tem que ter o mesmo nome pra fazer um grupo.

em js:

if (document.form[0].nometal[0].checked) {   .. faça alguma coisa...  }else if ((document.form[0].nometal[1].checked) {   .. faça outracoisa...  }else if (document.form[0].nometal[2].checked) {   .. faça qualquer outra coisa...  }else {   alert('Precisa selecionar pelo menos uma opção!');return false;}// ps: o document.form[0] pode ser substituido pelo nome do form, neste casomyForm = document.nome_do_form;if (myForm.nometal[0].checked) {   .. faça alguma coisa...  }else if (myForm.nometal[1].checked) {   .. faça outracoisa...  }else if (myForm.nometal[2].checked) {   .. faça qualquer outra coisa...  }else {   alert('Precisa selecionar pelo menos uma opção!');return false;}
O grupo inicia com o index=0 até n.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei assim:

 

for (i=0;i<document.assinatura.registrar.length;i++){

if (document.assinatura.registrar.checked)

registrar=document.assinatura.registrar.value;

break;

}

 

Mas ta dando este erro:

Erro: registrar is not defined

Arquivo-fonte: javascripts.js

Na linha: alert(registrar);

 

Este alert coloquei rpa ver se ta funcionando, mas como poder ver nao esta.

O extranho é que ja usava assim para um grupo de radiobutton de 2 radios apenas e agora to tentando usar para um que tem 3 e outros que nao saberei a quantidade pois virao do banco de dados...

 

Sabe o que pode ser este erro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi consegui agora, na verdade estava funcionando, eu que tava usando errado, ai modifiquei algumas coisa e veja só como ficou:

 

for ( var i = 0; i < document.getElementsByName( "produto" ).length; i++ ) {  if ( document.getElementsByName( "produto" )[i].checked ) {	var produto=document.getElementsByName( "produto" )[i].value;  }}

Agora tem um detalhe, tentei usar assim: if(produto=="") ....

 

Ou seja se produto for igual a vazio ele me avisa, mas nao ta funcionando ai coloquei um alert e me é exibido a palavra undefined.

 

Minha necessidade é de saber se esta vazio os radiobuttons ou seja, se nenhum foi selecionado sacou? Como faço isso?

Eu podia usar assim: if(produto=="undefined") pq dai eu saberia que nenhum foi selecionado, mas isso é cambiarra :P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim:

 

for ( var i = 0; i < document.getElementsByName( "produto" ).length; i++ ) {  if ( document.getElementsByName( "produto" )[i].checked ) {	var produto="marcado";  } else {	var produto="vazio";  }}

ai depiis assim: if(produto=="vazio")....

 

o que pode ser?

 

Ai ocorre o seguinte, se tem apenas um radio ele fica perfeito mais se tem mais de um, ele só funciona se eu marcar o segundo radio, se marcar o primeiro ele diz que ta vazio...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, tentei de outra forma:

 

var total_produto = document.assinatura.produto.length;var plano = 0;for(var i=0; i < total_produto; i++) {if(document.assinatura.produto[i].checked) {produto++;}}

Ai funcionou em partes, mas agora se tive somente um radio ele da como undefined.

 

uso assim: if(produto==0) ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.