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

Radio e Checkbox


Nill

Pergunta

e o seguinte, fiz um script para verificar se o formulario esta em branco antes de ser enviado.

ficou assim;

<script language="JavaScript" >
function enviardados(){ 
.
.
if(document.dados.C1.checked==false && document.dados.C2.checked==false && document.dados.C3.checked==false && document.dados.C4.checked==false)
{ 
alert( "Nenhum campo da Questão 01 foi selecionado!!!!" ); 
return false; 
}
este IF acima verifica se o Checkbox esta em branco caso positivo não deixa passar. Esta funcionando perfeitamente Porém o script do radio não esta funcionando, fiz da mesma forma desse acima.
if(document.dados.R3[1].checked==false && document.dados.R3[2].checked==false && document.dados.R3[3].checked==false && document.dados.R3[4].checked==false && document.dados.R3[5].checked==false && document.dados.R4[6].checked==false && document.dados.R4[7].checked==false)
{ 
alert( "Nenhum campo da Questão 02 foi selecionado!!!!" ); 
return false; 
}

O que esta errado nesse acima do radio?

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

vlw ai pessoal, resolvi aqui. Havia me esquecido de um pequeno detalhe. O indice do Radio, começa com 0 e não com 1, dei bobeira...

Mas de qualquer forma vlw

Link para o comentário
Compartilhar em outros sites

  • 0

Nossa véio..que bando de código é esse....vários && o.O

Vai depender de como está montado seu html...Não sei, talvez também tenha erro de sintaxe ae no seu código...

Olha só como é simples:

<html><body>

<form action="Edu.php" name="dados" id="dados">

<input type="radio" name="R3" />
<input type="radio" name="R3" />
<input type="radio" name="R3" />
<input type="radio" name="R3" />
<input type="radio" name="R3" />
<input type="radio" name="R3" />
<input type="submit" value="Manda">

</form>

</body>
</html>
<script type="text/javascript">

function verifica(){
     for(var x=0; x<document.dados.R3.length; x++)
         if(document.dados.R3[x].checked==true)
         return true
     alert("Não preencheu todos os dados")
     return false
}window.onload=function(){document.dados.onsubmit=verifica}

</script>

Se alguma estiver checada ele manda o form, senão não... :huh:

EDIT:

E lá vou eu postar quando o problema foi resolvido de novo... <_<

Link para o comentário
Compartilhar em outros sites

  • 0

Kakaroto, eu até vi esse codigo parecido com este ai. http://scriptbrasil.com.br/forum/index.php...mp;#entry356253

Porém não atende as minhas necessidades, e que no meu formulario, tenho varios Radios e Checkbox, pois é uma pesquisa de satisfação de cliente. E tenho que verificar um por um, e não todos de uma vez, pois temho que falar para o usuario, qual o radio ou checkbox que ele deixou de selecionar.

Pelo o codigo que você colocou, ele verifica somente o radio com o nome que você colocou, no meu caso eu tenho no minimo sequência radio acho que daria o mesmo trabalho.

O endereço da pesquisa é esse ai -> http://www.vigacaldeiraria.com.br/pesquisa/pesq_01.htm.

Caso tenha uma ideia que possa me ajudar a enxugar os codigos.

De qualquer forma agradeço pela dica

Link para o comentário
Compartilhar em outros sites

  • 0

Eu sei que não atende às suas necessidades...eu não dei o código pronto todo...A minha intenção era mostrar uma forma de fazer a procura de elementos.

Perceba que se você tiver um projeto bem montado em html a procura dos elementos fica mais fácil e o código em Js acaba ficando mais genérico.

Tente fugir desse negócio de pegar id ou nome de elementos se existirem vários deles. Imagina que um php gere pra você um form com 19000 radios. você vai ficar incluindo os nomes dos id´s e os && 19000 vezes?

Se você tem inputs, basta colocá-los dentro de um div se quiser e atribuir um id para o div. Assim você tem um código só para o checkbox e para o radio, com pouquissimas linhas. você teria então dois divs, um com nome de "R3" e outro com nome de "C1", para pegar os elementos deles e checar se estão todos vazios é só fazer uma função de procura que use:

document.getElementById("R3").getElementsByTagName("input")

O "R3" seria um argumento da função e poderia ser "C1". Assim você varre os elementos pelo id da caixa maior ao invés de pegar pelo nome de cada um.

Vou tentar explicar isso de forma mais clara:

Pensa que os inputs são crianças da sala A. você quer fazer com que as crianças vão para a sala B. O que é melhor?

1- CHamar uma por uma pelo nome: "Fulano vá para a sala B"

2- Chamar pela classe: "Pessoal da classe A vão todos para a B"

É a mesma coisa com os elementos html.

Akeleabrasssss

Link para o comentário
Compartilhar em outros sites

  • 0

Ai Kakarotto, realmente seguinto sua ideia, seria bem mais facil resolver o meu problema.

Tentei fazer o que você me disse.

<div id="r2"><table border="0" cellpadding="2" id="table29" width="635">
<tr>
.
.
<td class="main" width="20" align="center" bgcolor="#F2F2F4">
<input type="radio" name="R1" value="5"></td>
<td class="main" width="20" align="center" bgcolor="#EDEDEF">
<input type="radio" name="R1" value="4"></td>
<td class="main" width="20" align="center" bgcolor="#F2F2F4">
<input type="radio" name="R1" value="3"></td>
<td class="main" width="20" align="center" bgcolor="#EDEDEF">
<input type="radio" name="R1" value="2"></td>
.
.
.
<td class="main" width="20" align="center" bgcolor="#F2F2F4">
<input type="radio" name="R12" value="2"></td>
<td class="main" width="20" align="center" bgcolor="#EDEDEF">
<input type="radio" name="R12" value="1"></td>
</tr>
</table></div>
.
.
.
Tenho os Divs, separando os blocos. conforme você citou acima e fiz da seguinte forma para verificar se os radios estão selecionados.
<script language="JavaScript" >
function enviardados(){ 
    
if(document.getElementById("r2").getElementsByTagName("input")=false)
{ 
alert( "campo da Questão foi selecionado!" ); 
return false; 
} 
}

Porém não deu certo!!! É dessa forma mesmo? Ou fiz besteira?

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

  • 0

Vichhh... fez, um monte rsrsrs.

Olha pelo que tentou fazer dá pra ver que ainda não tem muita experiência na linguagem. Vou mostrar o que eu faria no seu caso, vou usar o seu problema:

Preste atenção:

html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt-br" lang="pt-br">

    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
        <title></title>        
    </head>
    <body>

<form action="Edu.php" name="dados" id="dados">
<div id="Rs">

<input type="radio" name="R3" />
<input type="radio" name="R3" />
<input type="radio" name="R3" />
<input type="radio" name="R3" />
<input type="radio" name="R3" />
<input type="radio" name="R3" />

</div>

<div id="Cs">

<input type="checkbox" name="C1" />
<input type="checkbox" name="C2" />
<input type="checkbox" name="C3" />
<input type="checkbox" name="C4" />
<input type="checkbox" name="C5" />
<input type="checkbox" name="C6" />

</div>

<input type="submit" value="Manda">
</form>

    </body>
</html>
Montei seu html ok? Olha o Javascript genérico:
function verifica(){
            var divs=["Rs", "Cs"]
            var guarda=0
                 for(div in divs){
                     for(var x=0; x<document.getElementById(divs[div]).childNodes.length; x++){
                         if(document.getElementById(divs[div]).childNodes[x].checked==true)
                         guarda=1
                 }
                 if(guarda==0) return false
                 guarda=0
                 }
                 return true
            }window.onload=function(){document.dados.onsubmit=verifica}

O código assim funciona para os dois tipos pois os dois tem a mesma propriedade checked.

Funcionaria para 1 ou infinitos inputs... Ou seja, se quiser mexer no html pra tirar ou adicionar elementos você pode fazer sem se preocupar com o javascript.

Abraços carinha o/

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