O valor_2 é recalculado cada vez que o campo valor_1 perde o foco. Tudo bem.
Queria saber se existe uma maneira de NÃO CHAMAR o método “fazAlgo” quando a caixa de texto valor_1 perde o foco devido ao click no botão “voltar”, pois neste caso não preciso executar cálculos no valor_2, menos ainda renderizar novamente a caixa de texto valor_2.
patrizio, vc talvez pusse usar o aj4:function ao invés do a4j:support, pq assim vc poderia chamar um javascript e no javascript colocar uma regra que diz qdo chamar ou não o método no managed bean.
R
rogeriosantos77
JSF 1.1 e RichFaces 3.1.6 tem cara de Scopus ou CPM Braxis
S
surfzera
uma solução é você criar um flag no seu metodo chamado no onblur… depois que ele passar um vez não mais será executado.
Será que isso ajuda ?
P
patrizio.cannoni
Na verdade isso não ajuda muito, pois o método “fazAlgo” do bean deve ser chamado sempre que o inputText “valor_1” perde o foco (onblur), para recalcular o valor_2 que vai ser apresentado na tela.
Único caso em que não precisa (e não deveria) chamar é clicando no botão “voltar”.
R
rogeriosantos77
Se vc tiver um flag que identifica que o botão voltar foi clicado, por exemplo um hidden, uma função javascript poderia avaliar se chamaria o método definido no
aj4:function
P
patrizio.cannoni
É verdade. Colocando “onblur” no h:inputText, consigo pegar o “document.activeElement”. Aí de repente posso tentar implementar uma lógica com javascript.
Pena que tenho esta caracteristica na aplicação inteira.
Uma tag JSF personalizada ia cair bem, visto que não parece existir um padrão para resolver este problema.
Vou tentar a solução do a4j:jsFunction, e vou postar o resultado aqui.
Obrigado a todos por enquanto.
P
patrizio.cannoni
Resolví da seguinte maneira, seguindo a sugestão do Rogerio:
Desta maneira, se o campo de texto perde o foco por causa do click no botão “Voltar”, o método do bean não é chamado.
Ainda fica o problema de como não aplicar os valores para os campos.