Como informar um valor de um campo e automaticamente preencher um componente?

9 respostas Resolvido
jsfprimefacesjava
D

possuo um campo valor no meu formulário, e ao digitar ele quero que atualize um componente Total serviço, como posso fazer isso? segue meu formulário.

9 Respostas

L

Javascript?
Ajax?
Depende de como você quer fazer.
Vejo que utiliza primefaces, então, você pode, simplesmente, criar uma função javascript que vá fazendo os cálculos ou, então (e o que eu acho mais coerente), associar um evento ajax e ao dispará-lo, atualizar a informação no seu managed bean, o que fará com que seja atualizado no componente total…

D

no caso, queria só pegar o valor do campo que for digitado e já renderizar no componente TotalServico por exemplo.

Como estou aprendendo primefaces, vejo que existe uma forma utilizando AJAX. porém ainda não sei fazer.

I
Solucao aceita

Vamos lá. se você está usando o primefaces, vamos usar os recursos que o framework te oferece:

Primeiro, você vai ter no seu bean atributos que representem valor e total serviço;

você pode criar um método no seu bean, chamado atualizaTotal() que recebe o valor do serviço e faz os calculos somatórios para acrescentar ao Total serviço;

dai você coloca no evento onChance, ou onBlur ou algo do gênero para que seu evento de atualização seja disparado, e coloca no atributo update o id do campo que contém o valor total de serviço.

um bom exemplo é este aqui.

D

massa! acabei de resolver… estava esquecendo do listener dentro da tag <p:ajax. vlw

F

man mostra o codigo como vc fez estou com o meso problema

D

Fácil…

meu xhtml

<p:outputLabel value="valor" for="valor" />
		<p:inputText  styleClass="moeda" value="#{cadastroServicoBean.servico.valor}"  size="5" id="valor"  required="true">
			<p:ajax process="@this" update="totalServico" event="keyup" />
			<f:convertNumber minFractionDigits="2"  maxFractionDigits="2"/>
		</p:inputText>


<p:outputLabel value="Total Serviço" style="font-weight:bold;" />
			<p:outputLabel id="totalServico" style="font-weight:bold;" value="R$ #{cadastroServicoBean.servico.valor}">
				<f:convertNumber  pattern="#,##0.00" />
			</p:outputLabel>
F

man uma duvida rs no campo total serviço ele vai sempre somar o valor em que vai ser digitado no campo valor ou ele vai ser sempre ser susbstituido ?

L

No modo que está, apenas atualizar o valor.
Para fazer com que o valor seja somado, você precisa invocar um método e realizar o cálculo no managed bean

F

entendi man vlw

Criado 27 de março de 2017
Ultima resposta 27 de mar. de 2017
Respostas 9
Participantes 4