JSF 2 e JQuery

9 respostas
maranata

Olás,

Preciso acessar um elemento HTML da página usando JQuery. Li algum material, porém ao testar os comandos JQuery no console do Firebug não consegui.

Alguém poderia dar uma exemplo simples?

Supondo que tenho este componte abaixo, como seria meu código JQuery para mostrá-lo (função show())?

Obrigado!

9 Respostas

rafaduka
jQuery( "#observacao" ).show();
jQuery( "#observacao" ).hide();
maranata

Olá rafaduka,

Ocorre que o componente herda o id dos componentes “pais” para compor o id do próprio componente, ficando um id muito louco. Exemplo:

Se eu jogar a instrução acima no console do Firebug funciona, porém percebi que este id muda… sacou?

rafaduka

“saquei”.
no seu form insira.

e sete um Id para o seu componente.

maranata

rafaduka:
“saquei”.
no seu form insira.

e sete um Id para o seu componente.


Olá rafaduka,

Veja o resultado com o prependId=“false”

Setei o ID do componente como “referencia_aba_dados”. Mesmo com prependId, o JSF adiciona os fragmentos j_idt37- e _input no id do componente, e pelos meus testes, este primeiro fragmento que contêm um número varia / muda.

E se o id muda fica complicado de trabalhar com JQuery…

rafaduka

tente algo como: jQuery ( '<algum pai>[id*="referencia_aba_dados"]' ).show();

maranata

Obrigado pela ajuda. Eu concordo que funcione desta forma, mas acho uma “gambiarra”. Será que o JSF não possui uma forma mais natural de trabalhar com o JQuery?

rafaduka

Acredito que um dos motivos que JSF foi criado é para evitar o uso Javascript.
Logo, posso dizer que usá-lo juntos é uma forma de “gambiarra” também.
Eu preferia frameworks “Action Based” como Struts, não component-based.

Portanto, “Gambiarra atrai Gambiarra”. ^^

mudando de assunto, aqui eu consegui fazer o que vc quer perfeitamente, poste seu xhtml. :wink:

maranata

rafaduka:
Acredito que um dos motivos que JSF foi criado é para evitar o uso Javascript.
Logo, posso dizer que usá-lo juntos é uma forma de “gambiarra” também.
Eu preferia frameworks “Action Based” como Struts, não component-based.

Portanto, “Gambiarra atrai Gambiarra”. ^^

mudando de assunto, aqui eu consegui fazer o que vc quer perfeitamente, poste seu xhtml. ;)


Desculpe, mas discordo completamente. Evitar, não significa não usar.

Acho que ainda não descobrimos a forma correta de utilizar, mas daí a falar que “usá-lo juntos é uma forma de “gambiarra”” é um grande erro.

rafaduka

<h:form id="formulario" prependId="false"> <p:inputTextarea id="observacao" /> </h:form>
assim funcionou, como está o seu?.

Criado 25 de janeiro de 2012
Ultima resposta 25 de jan. de 2012
Respostas 9
Participantes 2