Bom, estou fazendo um formulario para cadastro de PF e PJ, no caso temos os campos obrigatorios para cada um, e no meu caso estou usando um unico form para os dois usando o radio para selecionar de é fisica ou juridica.
Assim o que esta acontecendo se eu deixo todos os campos required, e estou com a parte da pessoa juridica aberta ele pede que preencha também os campos required da fisica.
Tentei fazer assim, tirei o required do input, tentei verificar se o radio esta checked e verificar os campos com JS mas não deu certo.
`if(document.getElementById("juridica").checked == true){
if (txtRazaosocial == ""){
alert('Preencha o campo Razão Social');
frmCont.txtRazaosocial.focus();
return false;
} else if (txtNomefantasia == ""){
alert('Preencha o campo Nome Fantasia!');
frmCont.txtNomefantasia.focus();
return false;
} else if (txtCnpj == ""){
alert('Preencha o campo CNPJ!');
frmCont.txtCnpj.focus();
return false;
} else if (txtIe == ""){
alert('Preencha o camp o Inscrição Estadual!');
frmCont.txtIe.focus();
return false;
}
} else if(document.fisica.radio.checked == true){
if (txtNome == ""){
alert('Preencha o campo Nome');
frmCont.txtNome.focus();
return false;
} else if (txtCPF == ""){
alert('Preencha o campo CPF');
frmCont.txtCPF.focus();
return false;
} else if (txtRG == ""){
alert('Preencha o campo RG!');
frmCont.txtRG.focus();
return false;
}
}`
Testa e dê um retorno. Uma dica saindo um pouco do contexto da solicitação, vc usa jQuery? E tentar usar validações de alguns plugins Jquery ou Bootstrap tbm é excelente p/ isto, fica mais bonito, performático e um código mais facil de dar manutenção.
Uso JQuery mas entendo pouco, bootstrap tb entendo pouco apesar de estar usando para fazer o site, não sabia que pelo bootstrap tem como fazer essas verificações.
Sou bem iniciante rs, vou me virando um pouco e fuçando na internet.
e a Validação que estou fazendo ao clicar no contratar
`
<!-- Validação Contratar-->
<script language="javascript" type="text/javascript">
function validarCont() {
var txtEndereco = frmCont.txtEndereco.value;
var txtNumero = frmCont.txtNumero.value;
var txtBairro = frmCont.txtBairro.value;
var txtCep = frmCont.txtCep.value;
var txtCidade = frmCont.txtCidade.value;
var txtUf = frmCont.txtUf.value;
var txtEmail = frmCont.txtEmail.value;
var txtTel = frmCont.txtTel.value;
var txtContato = frmCont.txtContato.value;
var txtSistema = frmCont.txtSistema.value;
var txtQtdadeusu = frmCont.txtQtdadeusu.value;
var txtNomefantasia = frmCont.txtNomefantasia.value;
var txtRazaosocial = frmCont.txtRazaosocial.value;
var txtCnpj = frmCont.txtCnpj.value;
var txtIe = frmCont.txtIe.value;
var txtNome = frmCont.txtNome.value;
var txtCPF = frmCont.txtCPF.value;
var txtRG = frmCont.txtRG.value;
if(document.getElementById("jur").checked == true){
if (txtRazaosocial == ""){
alert('Preencha o campo Razão Social');
frmCont.txtRazaosocial.focus();
return false;
} else if (txtNomefantasia == ""){
alert('Preencha o campo Nome Fantasia!');
frmCont.txtNomefantasia.focus();
return false;
} else if (txtCnpj == ""){
alert('Preencha o campo CNPJ!');
frmCont.txtCnpj.focus();
return false;
} else if (txtIe == ""){
alert('Preencha o camp o Inscrição Estadual!');
frmCont.txtIe.focus();
return false;
}
} else if(document.getElementById("fis").checked == true){
if (txtNome == ""){
alert('Preencha o campo Nome');
frmCont.txtNome.focus();
return false;
} else if (txtCPF == ""){
alert('Preencha o campo CPF');
frmCont.txtCPF.focus();
return false;
} else if (txtRG == ""){
alert('Preencha o campo RG!');
frmCont.txtRG.focus();
return false;
}
}
if (txtEndereco == ""){
alert('Preencha o campo Endereço!');
frmCont.txtEndereco.focus();
return false;
} else if (txtNumero == ""){
alert('Preencha o campo Número');
frmCont.txtNumero.focus();
return false;
} else if (txtBairro == ""){
alert('Preencha o campo Bairro');
frmCont.txtBairro.focus();
return false;
} else if (txtCep == ""){
alert('Preencha o campo CEP');
frmCont.txtCep.focus();
return false;
} else if (txtCidade == ""){
alert('Preencha o campo Cidade');
frmCont.txtCidade.focus();
return false;
} else if (txtUf == ""){
alert('Preencha o campo UF');
frmCont.txtUf.focus();
return false;
} else if (txtEmail == ""){
alert('Preencha o campo e-mail!');
frmCont.txtEmail.focus();
return false;
}else if (txtContato == ""){
alert('Preencha o campo Contato!');
frmCont.txtContato.focus();
return false;
}else if (txtSistema == ""){
alert('Preencha o campo Sistema!');
frmCont.txtSistema.focus();
return false;
}else if (txtQtdadeusu == ""){
alert('Preencha o campo Qtdadeusu!');
frmCont.txtQtdadeusu.focus();
return false;
}
}
</script>`
Corrija p/ os elementos que você quer e ao tentar realizar o teste abre o console do browser e começa executar, p/ ver se não há mais nenhum erro. E na condição vc está checando os ultimos campos no formulario por primeiro. Tem que ser tipo:
if(fisica){
verificar somente campos da div fisica
}else{
verificar somente campos da div juridica
}
agora sim verificar os campos em comum
Consegui, não sabia que dava pra ver os erros no console.
Verifiquei e no caso era o nome do campo que estava incorreto.
So coloquei ele corretamente e funcionou.