Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia.
Meu problema é o seguinte.
Tenho dois radiobutton no formulário de cadastro (Pessoa Física / Pessoa Jurídica).
Para Física habilita cpf e rg, e para jurídica habilita cnpj e inscrição estadual.
Fiz o seguinte código para quando enviar e só reclamar de um campo estar vazio (cnpj ou cpf, dependendo do que foi selecionado)...
if(document.pedido.Pfisica.value){
if(document.pedido.t1.value=="") {
alert("O Campo CPF é obrigatório!");
return false;
}
}
else
if(document.pedido.Pjuridica.value){
if(document.pedido.t2.value==""){
alert("O Campo CNPJ é obrigatório!");
return false;
}
}
Mas um exemplo do problema é.
Eu escolho pessoa física e logo em seguida troco para pessoa jurídica.
Daí digito os dados e vou enviar, quando envio ele reclama de não ter add cpf.
Sendo que se eu seleciono diretamente o cnpj, digito os dados e vou enviar, ele não reclama do cpf.
Você podem me ajudar com isso? Mesmo escolhendo por exemplo p. física e mudando para p. jurídica ele não dê essa mensagem, já que o que esta marcado é p. jurídica.
Espero que tenham entendido, obrigada.
Minha ignorância me fez responder errado e um pouco malcriada. Perdão, mas reformulando...
Os campos a principio estão desativados, e só ativa conforme selecionado a pessoa. Então só o que esta ativado que a pessoa deve preencher, ter uma auto-mensagem assim não teria nada haver. Pelo menos eu acho.
E sinceramente não está entrando na minha cabeça isso. O nome dos dois é o mesmo "pessoa", mas ali em cima esta sinalando o id, por isso está diferente. Está assim por conta da habilitação do qual falei, fiz assim por isso, e não estou conseguindo mesmo é entender o raciocínio.
E isso de que disse que ficaria sem sentido é que, se está marcado o pessoa jurídica, fica sem sentido pedir "marque CNPJ ou CPF", pois cpf não é necessário e tals. Tomara que tenha uma solução pra isso. ^_^
Veja meu exemplo!
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>Teste</title>
<script type="text/javascript">
function get(valor){
return document.getElementById(valor);
}
function ativar(valor){
if (valor == "CPF"){
get("div_cpf_cnpj").innerHTML = valor;
return true;
}
if (valor == "CNPJ"){
get("div_cpf_cnpj").innerHTML = valor;
return true;
}
}
function validar(){
var formulario = document.formu;
if (formulario.numero_cpf_cnpj.value == ""){
alert("Preencha o campo " + get("div_cpf_cnpj").innerHTML);
texto = "";
return false;
}
}
</script>
</head>
<body>
<form name="formu" method="post" onSubmit="return validar()" action="teste.html">
CPF: <input type="radio" name="cnpj_cpf" onChange="ativar(this.value);" value="CPF">
/ CNPJ: <input type="radio" name="cnpj_cpf" onChange="ativar(this.value);" value="CNPJ">
<br />
Numero do <span id="div_cpf_cnpj">CPF</span>: <input type="text" name="numero_cpf_cnpj">
</div>
<br />
<br />
<button type="submit">Testar</button>
</form>
</body>
</html>Muito bom querido Ted, rs.
Ótimo exemplo, agora compreendi.
Obrigada ;)
Na verdade, os dois precisam ter o mesmo nome! e o alert seria "marque CNPJ ou CPF"