Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

JSF e JavaScript

Olá pessoal, tudo bem ? Estou com a seguinte duvida: Como o JSF trabalha com o JavaScript ?

Vou ser mais especifico. Eu estou em um projeto onde estou usando JSF (primefaces), porém não consigo fazer algo simples com JavaScript, que seria um

var btnCarregaAnexo = document.querySelector('carregaAnexo')
btnCarregaAnexo.style.display = 'none'

apresenta um erro no console, de que esta variavl btnCarregaAnexo esta "null".

Porém no button que estou querendo pegar, está com "id" = carregaAnexo;

Ja testei tambem com getElementById, mas sem sucesso...

Então, conclusão, o JSF (primefaces) ou o JBoss, qe estou utilizando, interfere no caminho dos ID'S ? Não consigo de maneira nenhuma pegar um componente com JS...

Obrigado, desculpe se não me expressei da melhor maneira, mas estou a disposição para conversarmos.

2 respostas

Alterei para realizar a seleção por classes CSS e o erro persiste…

XHTML

<p:commandButton id=“carrega1” styleClass="botaoAnexo"
value="Carregar Declaração"
title="Carregar Declaração e/ou Diploma de Conclusão do Ensino Médio"
onclick=“editarArquivo1.show();“
rendered=”#{empty atletaCidadaoController.atletaCidadao.tipoArquivo1}”/>

JavaScript

  var btnCarregaAnexo = document.querySelector('botaoAnexo');
            btnCarregaAnexo.style.display ='block';

CSS

.botaoAnexo{
    display: none;
}

ERRO NO CONSOLE Uncaught TypeError: Cannot read property ‘style’ of null

Oi Bruno,

Talvez o problema seja porque no querySelector você passou o valor botaoAnexo e desse jeito ele vai procurar por uma tag html chamada botaoAnexo.

Altere o seu código para:

var btnCarregaAnexo = document.querySelector('.botaoAnexo');

//se for buscar por id:
var btnCarregaAnexo = document.querySelector('#botaoAnexo');

Veja se resolve.