Fórum Trocar as mascaras do input de CPF para CNPJ #527617
03/08/2015
0
Então pessoal tenho uma aplicação que possui um <h:SelectOneRadio> com dois itens, um CPF e outro de CNPJ e logo em baixo tenho dois <h:inputMask> um para o CPF e outro para o CNPJ, ja estou colocando a máscara em ambos, e to colocando o campo de CPNJ com o atributo rendered=false" para que ele fique invisível ao usuário.
Daí quando eu selecionasse o radio de CPF ele trocava os inputs, colocando suas devidas mascaras e validações, porém quando eu seleciono o input ele não faz essa troca.
Agradeço muito se alguém me ajudar.
aqui vai a parte do código:
// aqui vai o radio.
<h:selectOneRadio>
<f:selectItem itemLabel="#{messages.ContratoCPF}" itemValue="PF" />
<f:selectItem itemLabel="#{messages.ContratoCNPJ}" itemValue="PJ" />
<p:ajax immediate="true" ></p:ajax>
</h:selectOneRadio>
//Aqui vai os inputs
<p:inputMask id="campoCPF" mask="999.999.999-99"
value="#{dadosLeilaoController.arrematante.documento}"></p:inputMask>
<p:inputMask id="campoCNJP" mask="999.999.999/9999-99"
value="dadosLeilaoController.arrematante.documento" rendered="false" ></p:inputMask>
Agradeço a ajuda desde já.
Fernando Costa
Curtir tópico
+ 0Posts
03/08/2015
Randrade
<label>
<input type="radio" name="group1" class="radio1">
</label>
<label>
<input type="radio" name="group1" class="radio2">
</label>
<div class="div1 content">
<p>CPF:</p>
<input placeholder="CPF"/>
</div>
<div class="div2 content">
<p>CNPJ:</p>
<input placeholder="CNPJ"/>
</div>
<script>
$(function () {
$('.radio1').click(function () {
$('.div1').show();
$('.div2').hide();
});
$('.radio2').click(function () {
$('.div2').show();
$('.div1').hide();
});
});
</script>
Olhe um exemplo funcional aqui.
Daí, você aplica as mascaras e validações com o java mesmo.
Gostei + 0
03/08/2015
Fernando Costa
se souber um exemplo usando esses dois ai baseados no codigo que eu postei na pergunta eu agradeceria!
Gostei + 0
03/08/2015
Randrade
Essas linguagem são de uso Front-End, "não importando" o framework ou linguaagem back-end para o uso delas.
Eu particularmente, não conheço aplicações web hoje, aue não utilizam jQuery para isso. Independente se é em java, C#, Ruby, ASp, etc.
Se quiser postar o código que você disse que não funcionou, ficarei feliz em ajudar.
Gostei + 0
03/08/2015
Fernando Costa
<h:selectOneRadio>
<f:selectItem itemLabel="CPF" itemValue="PF" />
<f:selectItem itemLabel="CNPJ" itemValue="PJ" />
<p:ajax immediate="true"></p:ajax>
</h:selectOneRadio>
<p:inputMask id="campoCPF" mask="999.999.999-99"
value="#{dadosLeilaoController.arrematante.documento}"></p:inputMask>
<p:inputMask id="campoCNJP" mask="999.999.999/9999-99"
value="dadosLeilaoController.arrematante.documento"
rendered="false"></p:inputMask>
Considere documento como o campo pra cpf e cnpj.
Gostei + 0
03/08/2015
Randrade
Gostei + 0
03/08/2015
Fernando Costa
Gostei + 0
03/08/2015
Robson Teixeira
Para que o que você deseja fazer, segue algumas alterações feitas
<h:selectOneRadio value="#{beanCPFCNPJ.opcao}">
<f:selectItem itemLabel="CPF" itemValue="CPF"/>
<f:selectItem itemLabel="CNPJ" itemValue="CNPJ"/>
<p:ajax process="@this" update="resultado"/>
</h:selectOneRadio>
<p:outputPanel id="resultado">
<p:inputMask id="campoCPF" mask="999.999.999-99"
value="#{beanCPFCNPJ.campo}"
rendered="#{beanCPFCNPJ.CPF}"/>
<p:inputMask id="campoCNJP" mask="999.999.999/9999-99"
value="#{beanCPFCNPJ.campo}"
rendered="#{beanCPFCNPJ.CNPJ}"/>
</p:outputPanel>
e segue o ManagedBean de exemplo
@ManagedBean
@ViewScoped
public class BeanCPFCNPJ {
private String opcao;
private String campo;
public boolean isCPF(){
return getOpcao()!=null && getOpcao().equals("CPF");
}
public boolean isCNPJ(){
return getOpcao()!=null && getOpcao().equals("CNPJ");
}
public String getOpcao() {
return opcao;
}
public void setOpcao(String opcao) {
this.opcao = opcao;
}
public String getCampo() {
return campo;
}
public void setCampo(String campo) {
this.campo = campo;
}
}
Gostei + 0
03/08/2015
Fernando Costa
Mas na hora que eu preencho o rádio ele só me renderiza o input do CPF e não muda pro do CNPJ, vou postar aqui o meu código se vc conseguir encontrar o erro e me da um help ai de novo, mas desde já, estou muito agradecido.
<h:selectOneRadio value="#{dadosLeilaoController.opcao}">
<f:selectItem itemLabel="#{messages.ContratoCPF}" itemValue="CPF" />
<f:selectItem itemLabel="#{messages.ContratoCNPJ}" itemValue="CPF" />
<p:ajax process="@this" update="resultado" />
</h:selectOneRadio>
<p:outputPanel id="resultado">
<p:inputMask id="campoCPF" mask="999.999.999-99"
value="#{dadosLeilaoController.arrematante.documento}"
rendered="#{dadosLeilaoController.CPF}"></p:inputMask>
<p:inputMask id="campoCNJP" mask="999.999.999/9999-99"
value="#{dadosLeilaoController.arrematante.documento}"
rendered="#{dadosLeilaoController.CNPJ}"></p:inputMask>
</p:outputPanel>
e aqui vai o bean
private String opcao;
public boolean isCPF(){
return getOpcao()!=null && getOpcao().equals("CPF");
}
public boolean isCNPJ(){
return getOpcao()!=null && getOpcao().equals("CNPJ");
}
//Getter e setter
Gostei + 0
03/08/2015
Fernando Costa
Mas na hora que eu preencho o rádio ele só me renderiza o input do CPF e não muda pro do CNPJ, vou postar aqui o meu código se vc conseguir encontrar o erro e me da um help ai de novo, mas desde já, estou muito agradecido.
<h:selectOneRadio value="#{dadosLeilaoController.opcao}">
<f:selectItem itemLabel="#{messages.ContratoCPF}" itemValue="CPF" />
<f:selectItem itemLabel="#{messages.ContratoCNPJ}" itemValue="CPF" />
<p:ajax process="@this" update="resultado" />
</h:selectOneRadio>
<p:outputPanel id="resultado">
<p:inputMask id="campoCPF" mask="999.999.999-99"
value="#{dadosLeilaoController.arrematante.documento}"
rendered="#{dadosLeilaoController.CPF}"></p:inputMask>
<p:inputMask id="campoCNJP" mask="999.999.999/9999-99"
value="#{dadosLeilaoController.arrematante.documento}"
rendered="#{dadosLeilaoController.CNPJ}"></p:inputMask>
</p:outputPanel>
e aqui vai o bean
private String opcao;
public boolean isCPF(){
return getOpcao()!=null && getOpcao().equals("CPF");
}
public boolean isCNPJ(){
return getOpcao()!=null && getOpcao().equals("CNPJ");
}
//Getter e setter
Gostei + 0
03/08/2015
Robson Teixeira
Preste atenção nos <f:selectItem de seu <h:selectOneRadio e veja os atributos itemValue, pois acho que ambos estão enviando CPF para o seu ManagedBean.
Att
Robson
Gostei + 0
03/08/2015
Fernando Costa
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)