[RESOLVIDO] - Javascript e PrimeFaces

2 respostas
T

Estou iniciando com JSF e estou utilizando primefaces, estou com um problema em uma pequena função javascript que usa o id do elemento da página.

<h:outputLabel for="cpf" value="CPF:" />
<p:inputMask id="cpf" value="#{clienteBean.cliente.cadastro}"  mask="[CPF removido]" size="14" onfocus="javascript:setCPF()" />
<h:outputLabel for="cnpj" value="CNPJ:" />
<p:inputMask id="cnpj" value="#{clienteBean.cliente.cadastro}"  mask="99.999.999/9999-99" size="14" onfocus="javascript:setCNPJ()" />

A função javascript:

function setCPF() {
	document.getElementById("cpf").style.background = "#FFFFFF";
	document.getElementById("cnpj").style.background = "#CCCCCC";
	document.getElementById("cnpj").value = "";
}

Funciona se eu colocar o id que é mostrado na página, mas pelo que eu vi ele não e fixo, então isso funciona até quando outro id não é gerado:

function setCPF() {
	document.getElementById("formulario:j_idt25:cpf").style.background = "#FFFFFF";
	document.getElementById("formulario:j_idt25:cnpj").style.background = "#CCCCCC";
	document.getElementById("formulario:j_idt25:cnpj").value = "";
}

A questão é como obter esse id ou fazer de outra maneira se for o caso.
Valeu!

2 Respostas

G

se quer tudo via JS mesmo pode ser assim

componente

<p:inputMask id="cnpj" value="#{clienteBean.cliente.cadastro}"  mask="99.999.999/9999-99" size="14" onfocus="javascript:setCNPJ( this )" />

funcao

function setCPF( componente ) 
    {  
        componente .style.background = "#CCCCCC";  
        componente .value = "";  
    }
T

Valeu pela dica!
Se eu precisasse alterar só um componente isso funcionaria.

Eu achei o problema do id que estava sendo modificado, é porque eu tinha um form no template com o id=“formulario” e não estava vendo que tinha outro form dentro da página sem o id, por isso que esse “j_idt25” era gerado. Removi esse form e o problema foi resolvido.

Criado 1 de fevereiro de 2012
Ultima resposta 2 de fev. de 2012
Respostas 2
Participantes 2