Passar valor de input para o método

Java

09/09/2014

Eu tenho um campo para armazena a quantidade de volumes

<h:outputLabel for="voucherBeanVoucherVolumePequeno" value="Volume Pequeno:"/>
				<h:panelGroup>
					<h:inputText id="voucherBeanVoucherVolumePequeno" value="#{voucherBean.voucher.volumePequeno} onchange="#{searchBean.findTarifaVolumesDeMao(????? )}""/>
					<h:message for="voucherBeanVoucherVolumePequeno" styleClass="error"/>
				</h:panelGroup>
				<h:outputText/>


E outro para armazenar o total a ser pago

<h:panelGroup>
					<h:inputText id="voucherBeanVoucherTotalVolumesPequenos" value="#{voucherBean.voucher.totalVolumesPequenos}"/>
					<h:message for="voucherBeanVoucherTotalVolumesPequenos" styleClass="error"/>
				</h:panelGroup>


Quero calcular isso automaticamente no on change do input voucherBeanVoucherVolumePequeno, para isso vou chamar o meu metodo findTarifaVolumesDeMao () que busca o valor da tarifa no banco e faz o calculo. Como eu passo o valor digitado no input para o meu método? E como eu retorno o resultado para o input voucherBeanVoucherTotalVolumesPequenos??

//Método que retorna o valor para tarifa de mão
public void findTarifaVolumesDeMao (Integer volumesPequenos){
try{
String sqlVolumesDeMao = "SELECT * from volumesextras where tipovolumes_id = 1 ;";
Query queryVolumesDeMao = entityManager.createNativeQuery(sqlVolumesDeMao, VolumesExtras.class);
volumesExtras = (VolumesExtras) queryVolumesDeMao.getSingleResult();
totalVolumesPequenos = (volumesExtras.getValorUnitario() * volumesPequenos );

}catch (NoResultException ne){
//
}
}
Cássia Freitas

Cássia Freitas

Curtidas 0

Respostas

Wander Santos

Wander Santos

09/09/2014

Cria uma funcao javascript que recebe o valor digitado. Faca uma requisicao passando passado seu select e no retorno da consulta pedi pra setar no campo da soma total
GOSTEI 0
Cássia Freitas

Cássia Freitas

09/09/2014

Cara tentei fazer a função aqui mas tá muito bizarro, o valor dos meus inputs passam null para o javascript.

Eu digito a quantidade em voucherBeanVoucherVolumePequeno dai chama o método que faz o sql no on change e a função js faz o calculo.

<h:outputLabel for="voucherBeanVoucherVolumePequeno" value="Volume Pequeno:"/>
				<h:panelGroup>
					<p:inputText id="tarifaVPequenos" value="#{searchBean.valorVPequenos}" readonly="true"/>
					<p:inputText id="voucherBeanVoucherVolumePequeno" value="#{voucherBean.voucher.volumePequeno}" onchange="#{searchBean.findTarifaVolumesDeMao()}"/>
					<p:commandButton onclick="calculaTarifaVolumesPequenos()" styleClass="add-button"/>
					<h:message for="voucherBeanVoucherVolumePequeno" styleClass="error"/>
				</h:panelGroup>
				<h:outputText/>
				<h:outputLabel for="voucherBeanVoucherTotalVolumesPequenos" value="Total Volumes Pequenos:"/>
				<h:panelGroup>
					<h:inputText id="voucherBeanVoucherTotalVolumesPequenos" value="#{voucherBean.voucher.totalVolumesPequenos}" />
					<h:message for="voucherBeanVoucherTotalVolumesPequenos" styleClass="error"/>
				</h:panelGroup>


Função js

var qtdVolumePequeno;
var tarifaVPequeno;
var qtdVolumeNormal;
var tarifaVNormal;
var qtdVolumeGrande;
var tarifaVGrande;
var totalVPequeno;
var totalVNormal;
var totalVGrande;

function calculaTarifaVolumesPequenos(){

	alert (document.getElementById('tarifaVPequenos').value);
	alert (document.getElementById("voucherBeanVoucherVolumePequeno").value);
	//Pega o valor da tarifa
	tarifaVPequeno = document.getElementById("tarifaVPequenos").value;
	//Pega a quantidade de volumes
	qtdVolumePequeno = document.getElementById("voucherBeanVoucherVolumePequeno").value;
	//Faz o calculo do total
	totalVPequeno = (qtdVolumePequeno * tarifaVPequeno);
	//Mostra o total no input
	document.getElementById("voucherBeanVoucherTotalVolumesPequenos");
}


Na linha
tarifaVPequeno = document.getElementById("tarifaVPequenos").value;
da erro o valor passado é null dei um alert pra ter certeza e realmente esta passando null mas o valor está ali eu inspecionei o elemento no chrome e aparece a propriedade value do input como valor corretamente.
GOSTEI 0
POSTAR