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

9 respostas Resolvido
jsfprimefacesjava
Dayson_Rodrigues

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…

Dayson_Rodrigues

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.

icarometal
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.

Dayson_Rodrigues

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

felipe1234

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

Dayson_Rodrigues

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>
felipe1234

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

felipe1234

entendi man vlw

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