Java script + jsf [resolvido]

PessoALL e o seguinte…eu estou tentando usar uma funçao js atraves de um onkeypress dentro do inputText…

a minha estrutura e a seguinte, tenho um arquivo que contem todos os js do sistema, chamo esse arquivo dentro da minha pagina, ate ai blz.

depois tenho os meus componetes…onde um deles e o textTelefone, este esta assim…

<h:inputText value="#{valor}" id="#{id}" disabled="#{readonly}"
	maxlength="#{empty tamanho ? 20 : tamanho}" onkeypress="return formatar(this, '(##) ####-####');"
	size="#{empty largura ? 40 : largura}"
	class="#{empty estilo ? 'box_default' : estilo}" />

o onkeypress chama a funçao formatar e passa a mascara, segundo o meu js permite, em paginas html normais…executa blz ou seja o script funciona, mas no jsf não tem cristo que faz funcionar… Alguem da um help ai???

Desde já agradeço!

Fala conterrânea! Tudo bem?!

Olha, com relação a seu problema eu devo dizer que não sou um expert! Também estou em fase de aprendizado em JSF (se é que você realmente está)!
Mas no caso o fato de você estar usando uma função javascript dentro do JSF assim eu não sei se é muuuuuuuuito legal!
Tipo, se eu estivesse com este mesmo problema eu pensaria em disparar um evento para passar o que está digitado para o bean para que um método formate este valor e retorne para o bean. Creio que Ajax4JSF deva ter algo para ajudar. Mas eu ainda estou tendo problemas para conseguir usá-lo também.

Outra alternativa é usar conversores/validadores que já fazem com que o valor seja editado e aceito em um determinado formato. O problema disso seria o momento em que você quer que isso aconteça, antes do ciclo executar e talvez até mesmo sem submeter o formulário. Novamente, eu sugeriria uma dose de AJAX. Assim que tiver algo mais concreto posso passar aqui novamente!

Flws!

Ola…

Então o problema e que pela estrutura aki tenho que usar assim.

Mas valeu, qualquer coisa me fala ai, se eu descobrir posto aki tbm…

Em relação ao meu aprendizado, tbm to aprendendo o jsf, ja to um tempinho com ele, mas essas particularidades sempre me quebra as pernas…rsrsrs

Vlws!

o Valdemar Neto está correto da uma olhada nas lib do ajax4jsf é bem legal, ou então utilize evento e listener que vao executar um método no seu bean, com o JSF você consegue abstratir bastante o javascript das suas páginas e se vc consegue rodar JSF vc consegue fazer isso sem problemas de estrutura a não ser talvez que teja desenvolvendo embaixo de alguma coutra tecnologia como portlets para Liferay, que te tira algumas opções mas mesmo assim ainda funcionaria nesse caso provavelmente.

JSF as vezes se complica um pouco com chamadas externas de Javascript, tenta o seguinte:

<script type="text/javascript" language="javascript" src="${pageContext.request.contextPath}/pastaComJS/meuJS.js"></script>

pageContext já vai estar disponível na sua aplicação, depois é só colocar o caminho e tentar chamar, acredito que vai funcionar.

Até !

Galera deixa eu tentar explicar como ta a minha arquitetura aki de arquivos…talvez assim ajuda vcs a ter uma luz e me da uma tbm…

Seguinte…

pages/js/script.js = onde esta o script

ai tenho a minha pagina de de layout = onde chamo o js, mostrando o caminho dito acima…

depois tenho os meus componentes que é onde chamo a funçao e ja deixo la estatico…

ai finalmente tenho a minha pagina de edição onde chamo esse componete…

Entao assim ajuda, talvez foi algum erro na hora de chamar a função e tals…ai eu coloquei um alert la no meu componente, e chegou la, o problema e que não ta chamando a funçao…

Então fiz do jeito que o danielfns me disse logo acima ai, mas tbm não funcionou…e sobre o ajax nada feito o meu patrao quer e o js…

Então alguem sabe alguma solução…ja to pra ficar doida…rsrs.

Abs

Você está usando JSF puro ou está usando como Facelets também?!

com Facelets tbm

Ich! Pois é! Eu também estou usando JSF + Facelets e ao tentar usar Javascript puro, eu tive certos problemas. Tipo, eu coloquei o cabeçalho no template, as páginas que implementam o template simplesmente pararam de funcionar. Subiam em branco. Ao tentar colocar as chamadas nas páginas e não no template, simplesmente não funcionava. Aí eu resolvi usar Rich Faces e estou aqui tentando fazer funcionar, para poder usar as funcionalidades AJAX nativas do RichFaces.

De qualquer modo, boa sorte aí!

Galera e o seguinte…conseguir resolver da seguinte forma…

pela minha estrutura como disse acima, coloquei a minha funçao diretamento no meu template…

E FUNFOU!!!

o negocio e que não tava conseguindo acessar o meu arquivo de scripts. então coloquei a função diretamente…

resolvi o meu problema, espero que te ajude tbm Valdemar Neto…Vc ja tentou isso?

Abs, qualquer coisa me fala ai a sua estrutura, talvez consiga te dar uma luz…rsr

Abs!

Hehehe! Na verdade, cheguei a tentar a função diretamente sim, mas eu acho que eu estava tendo um problema mais de escopo da página porque eu queria, a partir de um formulário de uma pop-up, mudar o valor de um campo de formulário em outra janela, utilizando uma função javascript. Mas por saber que o JSF dá certo suporte a isso, estou tentando usar Modal Panel do RichFaces para fazer isso de forma mais fácil e amena.

De qualquer forma obrigado também! Qualquer hora a gente se topa em algum evento em Goiânia! Flws!

blz…topamos sim…
Goiania e um ovo…kkk

Flws!