Jump to content


Photo

Verificar Opcao Do Radio Button E Validar(erro)


  • Faça o login para participar
9 replies to this topic

#1 tio-cesar

tio-cesar

    Novato no fórum

  • Usuários
  • 24 posts
  • Sexo:Não informado

Posted 27/03/2007, 23:53

Pessoal, tenho um form com 5 campos:

Tipo de pessoa
CPF
RG
CNPJ
Razao Social

Tenho um js para validar os campos do formulario, se estiverem vazios me exibe um alert.
Ai fiz uma condiçao de que se o tipo_pessoa fosse igual a fisica verificar se o campo CPF e RG estao vazios
e se o tipo_pessoa fosse igual a juridica verificar se o campo CNPJ e Razao Social estao vazios:

if (tipo_pessoa=="fisica" && cpf=="") {
window.alert("Por favor digite um CPF válido.");
document.cadastro_dominio.cpf.focus();
return false;
}
if (tipo_pessoa=="fisica" && rg=="") {
window.alert("Por favor digite um RG válido.");
document.cadastro_dominio.rg.focus();
return false;
}
if (tipo_pessoa=="juridica" && cnpj=="") {
window.alert("Por favor digite um CNPJ válido.");
document.cadastro_dominio.cnpj.focus();
return false;
}
if (tipo_pessoa=="juridica" && razao_social=="") {
window.alert("Por favor digite um CNPJ válido.");
document.cadastro_dominio.razao_social.focus();
return false;
}

Mas nao deu certo, o que fiz de errado?

Alguem pode me ajudar?

#2 kaduzick

kaduzick

    12 Horas

  • Usuários
  • 229 posts
  • Sexo:Masculino
  • Localidade:Brasília
  • Interesses:Aprender e Ajudar

Posted 28/03/2007, 08:36

Como está o formulário?
Como é chamada a função?
Onde está o resto da função para podermos saber como está sendo pego o valor das variáveis ...

acho que com a resposta a essas perguntas ficaria mais fácil te ajudar, pois o que tudo indica está correto o código postado.
kaduzick - The Nerds

#3 tio-cesar

tio-cesar

    Novato no fórum

  • Usuários
  • 24 posts
  • Sexo:Não informado

Posted 28/03/2007, 09:12

É que a funçao ta bem grande, vou colocar só o que é referente ao que preciso:

function valida_assinatura() {
var tipo_pessoa=document.assinatura.tipo_pessoa.value;
var cpf=document.assinatura.cpf.value;
var rg=document.assinatura.rg.value;
var cnpj=document.assinatura.cnpj.value;
var razao_social=document.assinatura.razao_social.value;

if (tipo_pessoa=="fisica" && cpf=="") {
window.alert("Por favor digite um CPF válido.");
document.cadastro_dominio.cpf.focus();
return false;
}
if (tipo_pessoa=="fisica" && rg=="") {
window.alert("Por favor digite um RG válido.");
document.cadastro_dominio.rg.focus();
return false;
}
if (tipo_pessoa=="juridica" && cnpj=="") {
window.alert("Por favor digite um CNPJ válido.");
document.cadastro_dominio.cnpj.focus();
return false;
}
if (tipo_pessoa=="juridica" && razao_social=="") {
window.alert("Por favor digite um CNPJ válido.");
document.cadastro_dominio.razao_social.focus();
return false;
}
return true;
document.assinatura.submit();
}

Chamo assim: onsubmit="return valida_assinatura();"

#4 kaduzick

kaduzick

    12 Horas

  • Usuários
  • 229 posts
  • Sexo:Masculino
  • Localidade:Brasília
  • Interesses:Aprender e Ajudar

Posted 28/03/2007, 09:51

Cara, eu não testei mas tenho uma dica para ajuda-lo

dê um alert em todas as variáveis depois de atribuir o valor a elas para ver se elas estão pegando o valor corretamente ...

o código postado está correto ...

qual erro aparece?
kaduzick - The Nerds

#5 tio-cesar

tio-cesar

    Novato no fórum

  • Usuários
  • 24 posts
  • Sexo:Não informado

Posted 28/03/2007, 10:17

o erro é que ele nao valida os campos mas se eu por assim:
if (tipo_pessoa=="fisica" || cpf=="") {

Ele valida mais independente do que estiver selecionado no tipo_pessoa.

Sabe de alguma outra forma de se fazer isso? tipo queria poder validar os campos conforme a escolha, se a pessoa escolher tipo_pessoa fisica entao ele é obrigado a preencher os campos cpf e rg e o cnpj razao social nao precisa pq ele é pessoa fisica e vice versa.

#6 kaduzick

kaduzick

    12 Horas

  • Usuários
  • 229 posts
  • Sexo:Masculino
  • Localidade:Brasília
  • Interesses:Aprender e Ajudar

Posted 28/03/2007, 10:28

se puder postar o formulário acho que poderia ficar mais fácil para eu poder te ajudar
kaduzick - The Nerds

#7 tio-cesar

tio-cesar

    Novato no fórum

  • Usuários
  • 24 posts
  • Sexo:Não informado

Posted 28/03/2007, 10:52

<!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">

<head>

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

<title>Untitled Document</title>

<script type="text/javascript">

function valida_assinatura() {

var tipo_pessoa=document.assinatura.tipo_pessoa.value;

var cpf=document.assinatura.cpf.value;

var rg=document.assinatura.rg.value;

var cnpj=document.assinatura.cnpj.value;

var razao_social=document.assinatura.razao_social.value;



if (tipo_pessoa=="fisica" && cpf=="") {

window.alert("Por favor digite um CPF válido.");

document.assinatura.cpf.focus();

return false;

}

if (tipo_pessoa=="fisica" && rg=="") {

window.alert("Por favor digite um RG válido.");

document.assinatura.rg.focus();

return false;

}

if (tipo_pessoa=="juridica" && cnpj=="") {

window.alert("Por favor digite um CNPJ válido.");

document.assinatura.cnpj.focus();

return false;

}

if (tipo_pessoa=="juridica" && razao_social=="") {

window.alert("Por favor digite um CNPJ válido.");

document.assinatura.razao_social.focus();

return false;

}

return true;

document.assinatura.submit();

}

</script>

</head>



<body>

<form id="assinatura" name="assinatura" method="post" action="" onsubmit="return valida_assinatura();">

  <table width="547" border="0" align="center" cellpadding="0" cellspacing="0" style="background-color:#FCFCFE; margin-top:5px; margin-bottom:10px">



	<tr>

	  <td width="137" height="23" align="left" class="texto_4a" style="padding-left:5px"><div align="left">Tipo de pessoa:</div></td>

	  <td width="410" height="23" class="texto_4a"><div align="left">

		  <input name="tipo_pessoa" type="radio" value="fisica" checked="checked" onclick="habilitaFisica(this);"/>

		F&iacute;sica

		<input name="tipo_pessoa" type="radio" value="juridica" onclick="habilitaJuridica(this);"/>

		Jur&iacute;dica</div></td>

	</tr>

	<tr>

	  <td height="23" align="left" class="texto_4a" style="padding-left:5px"><div align="left">CPF:</div></td>

	  <td height="23"><div align="left">

		  <input name="cpf" type="text" class="input" id="cpf" size="40" maxlength="14" />

	  </div></td>

	</tr>

	<tr>

	  <td height="23" align="left" class="texto_4a" style="padding-left:5px"><div align="left">RG:</div></td>

	  <td height="23"><div align="left">

		  <input name="rg" type="text" class="input" id="rg" size="40" maxlength="10" />

	  </div></td>

	</tr>

	<tr>

	  <td height="23" align="left" class="texto_4a" style="padding-left:5px"><div align="left">Raz&atilde;o Social: </div></td>

	  <td height="23"><div align="left"><span class="texto_4a">

		  <input name="razao_social" type="text" disabled="disabled" class="input" id="razao_social" size="40" />

	  </span></div></td>

	</tr>

	<tr>

	  <td height="23" align="left" class="texto_4a" style="padding-left:5px"><div align="left">CNPJ</div></td>

	  <td height="23"><div align="left">

		  <input name="cnpj" type="text" disabled="disabled" class="input" id="cnpj" size="40" maxlength="19" />

	  </div></td>

	</tr>

	<tr>

	  <td height="23" align="left" class="texto_4a" style="padding-left:5px">&nbsp;</td>

	  <td height="23"><label>

		<input type="submit" name="Submit" value="Enviar" />

	  </label></td>

	</tr>

  </table>

</form>



</body>

</html>


#8 kaduzick

kaduzick

    12 Horas

  • Usuários
  • 229 posts
  • Sexo:Masculino
  • Localidade:Brasília
  • Interesses:Aprender e Ajudar

Posted 28/03/2007, 11:21

Eu disse para você dar um alert nas variáveis né ...

o erro está na parte de buscar o valor do radio, pois existe mais de um então o value não sabe de quem pegar ... aí ele não pega ... dê o alert para testar

para pegar o valor do radio marcado utilize:

var tipo_pessoas = document.getElementsByTagName("input");
	var tipo_pessoa;
	var cpf = document.assinatura.cpf.value;
	var rg = document.assinatura.rg.value;
	var cnpj = document.assinatura.cnpj.value;
	var razao_social = document.assinatura.razao_social.value;

	for(i = 0; i < tipo_pessoas.length; i++){
		if(tipo_pessoas[i].name = "tipo_pessoa" && tipo_pessoas[i].checked){
			tipo_pessoa = tipo_pessoas[i].value;
		}
	}


é isso aí, qualquer coisa é nóis ... se descobrir outra forma de fazer poderia, por favor, postar aqui?

valeu !!!
kaduzick - The Nerds

#9 tio-cesar

tio-cesar

    Novato no fórum

  • Usuários
  • 24 posts
  • Sexo:Não informado

Posted 28/03/2007, 16:25

Nao funcionou e nao mostrou nenhum erro.

ja consegui:

for (i=0;i<document.assinatura.tipo_pessoa.length;i++){
if (document.assinatura.tipo_pessoa[i].checked)
break;
}


if (document.assinatura.tipo_pessoa[i].value=="juridica" && razao_social=="") {
window.alert("Por favor digite uma Razão Social");
document.assinatura.razao_social.focus();
return false;
}

#10 kaduzick

kaduzick

    12 Horas

  • Usuários
  • 229 posts
  • Sexo:Masculino
  • Localidade:Brasília
  • Interesses:Aprender e Ajudar

Posted 28/03/2007, 17:58

Bom, se não funcionou é porque você fez alguma coisa errada ... porque eu testei aqui e funcionou ... de qualquer forma é a mesma coisa que tu fez ... eu sempre tentei achar alguma coisa que não precisasse desse FOR mas tô vendo que num tem mesmo ... de qualquer forma é isso aí
kaduzick - The Nerds




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq