Pessoal Boa noite.
Estou com um probleminha.
Tenho um Form de Cliente.
No meu sistema a Classe pai é Cliente com duas classes filhas (PessoaFisica) e (PessoaJuridica).
No meu JSP, tenho que criar um campo radio ou select que quando eu escolho pessoa fisica ele habilita os dados (rg, cpf) e se eu escolho pessoa Juridica habilita (cnjp, etc…)
como criar este procedimento no JSP???
alguem pode me ajudar?
Obrigado! :
Você vai ter que usar JavaScript.
Um exemplo bem simples.
[code]
<script Language=“JavaScript”>
function habilita(v) {
if (v == 1) {
document.formulario.rg.disabled = true;
document.formulario.cpf.disabled = false;
} else {
document.formulario.cpf.disabled = true;
document.formulario.rg.disabled = false;
}
}
</script>
<form name=“formulario”>
<input type=“radio” name=“group1” value=“Milk” onclick=“habilita(1)”>PJ
<input type=“radio” name=“group1” value=“Butter” onclick=“habilita(2)”>PF
RG: <input type="text" name="rg" value="" disabled='true'><br>
CPF:<input type="text" name="cpf" value="" disabled='true'><br>
</form>[/code]
O mais legal seria você usar JQuery.
Fiz algo como o que vc está precisando utilizando JSF 2, xhtml e primefaces. Não sei quais as tecnologias vc está utilizando porém ai vai uma versão adaptada, espero ajudar.
<h:panelGrid columns="2" cellspacing="1">
<h:selectOneRadio id="tipoPessoa" valueChangeListener="#{clienteMB.trocarMascara}">
<f:selectItems value="#{clienteMB.tpPessoa}" />
</h:selectOneRadio>
</h:panelGrid>
<p:outputPanel>
<h:outputLabel value="CPF/CNPJ: *"/>
<p:inputMask mask="#{clienteMB.mascaraCpfCnpj}" id="pesCpfCnpj" size="20" value="#{clienteMB.cpfcnpj}" required="true"
requiredMessage="CPF/CNPJ é obrigatório!" validator="validadorCpfCnpj" />
</p:outputPanel>
método para trocar a máscara
/**
* método para trocar a máscara do campo CPF/CNPJ quando o usuário alterar o tipo da pessoa.
* @param evt evento de alteração do valor do campo
*/
public void trocarMascara(ValueChangeEvent evt){
itemSelecionado.setValue(evt.getNewValue());
if(itemSelecionado.getValue() != null){
mascaraCpfCnpj(itemSelecionado.getValue().toString());
}
}
método para setar a máscara
/**
* método para setar a máscara de CPF/CNPJ e o tpPessoa
* @param tipoPessoa
*/
public void mascaraCpfCnpj(String tipoPessoa){
if (tipoPessoa.equalsIgnoreCase("PJ")) {
this.setMascaraCpfCnpj("99.999.999/9999-99");
this.getPessoa().setTpPessoa("PJ");
} else {
this.setMascaraCpfCnpj("999.999.999-99");
this.getPessoa().setTpPessoa("PJ");
}
}
Obrigado.
Vi 2 exemplos bastante interessante… vou ver como vou utiliza-los
Romarcio, obrigado, consegui fazer com o seu codigo, ficou legal
só estou com uns probleminhas na hora de mostrar os dados, pois se eu nao digito as informações do Pessoa fisica e cadastro, acusa um erro que não encontrou nada em RG, etc, embora os campos permitem null
mas vou tentar resolver.
Obrigado!!!
[quote=romarcio]Você vai ter que usar JavaScript.
Um exemplo bem simples.
[code]
<script Language=“JavaScript”>
function habilita(v) {
if (v == 1) {
document.formulario.rg.disabled = true;
document.formulario.cpf.disabled = false;
} else {
document.formulario.cpf.disabled = true;
document.formulario.rg.disabled = false;
}
}
</script>
<form name=“formulario”>
<input type=“radio” name=“group1” value=“Milk” onclick=“habilita(1)”>PJ
<input type=“radio” name=“group1” value=“Butter” onclick=“habilita(2)”>PF
RG: <input type="text" name="rg" value="" disabled='true'><br>
CPF:<input type="text" name="cpf" value="" disabled='true'><br>
</form>[/code]
O mais legal seria você usar JQuery.[/quote]