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

(Resolvido) validação de radio box


freddys_

Pergunta

Pessoal, estou usando o seguinte código para validar um caixa de texto onde é digitado o nome

<script type="text/JavaScript">
<!--
function valida_campo()
{
  <!--
  var nome = document.form.nome.value
  if (nome=="")
  {
    alert("Necessário informar nome!");
    document.form.nome.style.background="#FF6666";
    document.form.nome.focus()
    return false
  }
  else {
      document.form.nome.style.background="";
  }
//-->
</script>
o formulário
<form action="enviar_dados.php" method="post" name="form" onSubmit="return valida_campo()" >
<input class="input"  type="text" name="nome" value="" size="32" />
<input type="submit" name="button" id="button" value="Enviar" />
</form>
Até aí tudo bem, se tento enviar o formulário sem digitar algo no campo nome, aparece uma janelinha de alerta dizendo que é necessário digitar o nome e ao clicar em OK, o campo recebe o ponteiro do mouse e fica vermelho. Aí surgiu um problema, tenho um radio box com 2 opções, e fiz o mesmo que com a a caixa de texto, mas não deu certo, ele acaba enviando o formulário, esteja ou não esteja selecionado uma opção, esse é o radio box
<input class="input" type="radio" name="opcao" value="1"/> Opção 1        <br />
<input class="input" type="radio" name="opcao" value="2"/> Opção 2
no javascript fiz assim
var opcao = document.form.opcao.value
  if (opcao != 1 || opcao != 2)
  {
    alert("Necessário selecionar alguma opção!");
    document.form.opcao.style.background="#FF6666";
                document.form.opcao.focus()
    return false
  }

O que preciso: se não for selecionado 1 das opções, apareça o alerta, dizendo que é pra selecionar alguma opção e ao clicar em OK não envie o formulário.

Desde já agradeço quem puder ajudar.

Editado por fercosmig
Utilize as tags de código. Facilita a visualização.
Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

freddys_, olha é um problema de lógica.

Se você define os valores dos inputs como sendo 1 e 2, eles sempre terão valores 1 e 2. O if nunca irá funcionar.

O intuito do input radio é usar uma e somente uma opção. Então não precisa validar esse tipo de entrada:

<input type="radio" name="Browser"  value="IE" checked="true" />Internet Explorer
<input type="radio" name="Browser" value="NetScape" />NetScape
<input type="radio" name="Browser" value="FireFox" />FireFox
<input type="radio" name="Browser" value="Mozilla" />Mozilla
<input type="submit" value="mandar" />

Defina um radio checado por padrão. Esse html acima manda pro servidor o valor do Browser. No exemplo a querystring seria: Browser=IE.

Kelabrassssssss

Link para o comentário
Compartilhar em outros sites

  • 0

Caro Freddys_ o que o nosso amigo Kakarotto disse tem sentido.

Porém o usuário pode não prestar atenção na escolha e enviar os dados de uma maneira incorreta. É claro que isso pode não gerar problemas, mas isso é uma questão de opinião. Caso queira fazer a validação o script é simples:

if ((document.form.opcao[0].checked) || (document.form.opcap[1].checked))
    {
             
    }

    else
    {
        alert("Necessário selecionar alguma opção!");
            document.form.opcao.style.background="#FF6666";
               document.form.opcao.focus()
        return false
    }

O funcionamento é simples, se caso um das duas opções estiver marcada a função prosegue normalmente, caso contrário executa-se os parâmetros definidos, e o envio é cancelado até que uma opção seja marcada.

Bom é isso, espero que tenha ajudado.

Editado por fercosmig
Utilize as tags de código, facilitam a visualização.
Link para o comentário
Compartilhar em outros sites

  • 0

OBS: No segundo parâmetro da expressão IF, eu colocquei o nome do radio errado: "opcap" ao invés de "opcao".

T+++

if ((document.form.opcao[0].checked) || (document.form.opcap[1].checked))

{

}

else

{

alert("Necessário selecionar alguma opção!");

document.form.opcao.style.background="#FF6666";

document.form.opcao.focus()

return false

}

Editado por fercosmig
Utilize as tags de código, facilitam a visualização.
Link para o comentário
Compartilhar em outros sites

  • 0

Valeu pessoal pela ajuda, deu certinho!

ficou assim:

<script type="text/JavaScript">
<!--
function valida_campo(){
  var nome = document.form.nome.value
  if (nome=="")
  {
    alert("Necessário informar nome!");
    document.form.nome.style.background="#FF6666";
    document.form.nome.focus()
    return false
  }
  else {
      document.form.nome.style.background="";
  }
  if ((document.form.opcao[0].checked) || (document.form.opcao[1].checked)){}
  else {
    alert("Necessário selecionar alguma opção!");
    return false
  }
}
-->
</script>
<form action="teste.php?e=1" method="post" name="form" onSubmit="return valida_campo()" >
<input class="input" type="text" name="nome" size="32" /><br>
<input class="input" type="radio" name="opcao" value="1"/> Opção 1        <br />
<input class="input" type="radio" name="opcao" value="2"/> Opção 2
<input type="submit" name="button" id="button" value="Enviar" />
</form>

Mais uma vez obrigado!

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

  • 0

Pessoal achei 1 aqui que está funcional. Segue:

<script type="text/JavaScript">

<!--

function valida_campo(){

var ok = false;

var form = document.forms[0].Cod_Mod;

for (i = 0; i < form.length; i++){

if (form.checked) {

ok = true;

}

}

if (!ok) {

alert ("É obrigatório selecionar no mínimo UM MÓDULO PARA ESTA TURMA!");

return false;

}

}

-->

</script>

<form action="teste.php" method="get" name="form" onSubmit="return valida_campo()" >

<input type="checkbox" value="1" name="Cod_Mod"> Modulo 1

<input type="checkbox" value="2" name="Cod_Mod"> Modulo 2

<input type="checkbox" value="3" name="Cod_Mod"> Modulo 3

<input type="checkbox" value="4" name="Cod_Mod"> Modulo 4

<input type="checkbox" value="5" name="Cod_Mod"> Modulo 5

<input type="submit" name="button" id="button" value="Enviar" />

</form>

Mas eu preciso usar o nome do checkbox assim: Cod_Mod[] . Com chave no final, para no envio do formulario, o PHP trabalhar com um array, pois se o cara selecionar 2 ou 3, itens usando o PHP, vou mesclar essa variável tipo 2,3.

Mas nessa linha

var form = document.forms[0].Cod_Mod;

eu mudo para

var form = document.forms[0].Cod_Mod[];

Aí dá erro

Já tentei assim, e nada

var form = document.forms[0]."Cod_Mod[]";

Resumindo da forma que está se a pessoa selecionar 2 checkbox, aparece (via get): Cod_Mod=2,Cod_Mod=3, e eu quero enviar assim Cod_Mod[]=2,Cod_Mod[]=3

Desde já agradeço quem puder ajudar

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