Selecao de CPF / CNPJ [RESOLVIDO]

4 respostas
B

[b]Galera estou com o seguinte problema…

Tenho um p:selectOneRadio que nele tem duas opçoes 1 - Pessoa Fisica 2 - pessoa Juricia

e de acordo com a opcao que for escolhida, o campo p:inputText devera aparecer a mascara de cpf ou cnpj.

E essa mascara deverá ser alterada de acordo com a seleçao…

Alguem sabe como posso fazer isso… Pensei em talvez fazer uma funçao JavaScript, mas nao conheco essa tecnologia…

Minha pag. eh .xhtml, e uso o primafaces.

Vlw’s… galera !![/b] :slight_smile:

4 Respostas

I

faz 2 inputText diferente, e renderiza conforme o valor do radiobutton, acho q eh mais facil do que alterar apenas a mascara

P

Olá. Além de usar javascript, você pode renderizar o input de acordo com a seleção do usuário… Por exemplo, vc pode ter 2 <p:inputMask> escondidos (cada um com uma mascara) que aparecem de acordo com sua seleção… Se vc selecionar Pessoa Física, vc renderiza o <p:inputMask> que tenha a máscara de CPF e a mesma coisa pra pessoa jurídica…
Não sei se é a melhor solução, mas ja que vc nao conhece javascript, seria a mais fácil…

Espero ter ajudado…

Vlw.

I

Olá,

Aqui eu uso RichFaces + JQuery. Para PrimeFaces deve ter algo semelhante. Creio que o conceito deve ser o mesmo.

No meu exemplo eu uso:

&lt;rich:jQuery selector=".mascaraTipoPessoa" timing="onload" query="mask('#{bean.mascaraTipoPessoa}',{placeholder:' '})" /&gt;

onde na mudança do tipo de pessoa, você determine na sua bean a máscara (atributo do tipo ‘String’).

Lembre que no componente <inputText> você deve ter o atributo styleClass com o mesmo nome da definição do jQuery.

Espero ter ajudado.

B


Ola galera...

Consegui Resolver meu problema.... peguei um pouquinho da dica de cada um e saiu esse resultado..

Pag.xhtml

<p:selectOneRadio id="typeperson" value="#{openingPathershipAgreementBean.agreement.typePerson}">   
         <f:selectItem itemLabel="#{msg.resolveMessage('label.combobox.person.contact')}" itemValue="#{msg.resolveMessage('label.person.contact.value')}"/>
         <f:selectItem itemLabel="#{msg.resolveMessage('label.combobox.person.legal')}" itemValue="#{msg.resolveMessage('label.person.legal.value')}"/>		
       
         <p:ajax event="change" process="@this, typeperson" update="txtCpfCnpj" listener="#{openingPathershipAgreementBean.changeMasks()}"/>   
</p:selectOneRadio>
					
<p:inputMask mask="#{openingPathershipAgreementBean.masksCpfCnpj}" id="txtCpfCnpj" value="#{openingPathershipAgreementBean.agreement.cpfCnpj}" />
Bean.java

public void changeMasks(){

		if (agreement.getTypePerson().equalsIgnoreCase("F")){
			masksCpfCnpj = "[CPF removido]";
		}else{
			masksCpfCnpj = "99.999.999/9999-99";
		}

	}
Em vez de redenizar meus campo, no p:ajax eu processo o meu selectOneRadio, e chamo meu bean, se faz um if simples.. so para passar as mascaras.

Essa foi a maneira mais simples que consegui fazer..

Obrigada a Todos pela ajuda e atençao !! :D

Criado 23 de janeiro de 2012
Ultima resposta 23 de jan. de 2012
Respostas 4
Participantes 4