Estou com um problema, estou tentando multiplicar dois campos contidos dentro do paifilho, porém quando tenho mais filhos, so consigo fazer a multiplicação do ultimo filho, tendo em vista que em uma atividade insiro a quantidade de produtos e na atividade seguinte informo o valor do item que irão se multiplicar um ao outro e preencher um campo de valor total.
var result = 0;
$("input[id^='ID_DO_CAMPO'").not(':first').each(function(index,value){
var row = this.id.split("___")[1];
var VALOR_UNITARIO = parseFloat($("#VALOR_UNITARIO___"+row).val().replace(/\./g,"").replace(/,/g,"\."))
var QUANTIDADE = $("#QUANTIDADE___"+row).val() == ''?0:parseFloat($("#QUANTIDADE").val());
$("#VALORTOTAL___"+row).val(VALOR_UNITARIO * QUANTIDADE)
});
Dessa forma você está somando o valor do campo, caso deseje fazer multiplicação é so trocar o operador
Então Rodolfo, os dois campos estão dentro do paifilho, vou mandar uma imagem em anexo pra vc identificar melhor
Então Rodolfo, os dois campos estão dentro do paifilho, vou mandar uma imagem em anexo pra vc identificar melhor
tenho dois itens e a multiplicação so funciona no ultimo item, nos itens anteriores ele não efetua a multiplicação.
Como mostra no modelo em anexo
Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.
Boa tarde!
Com base na imagem, você precisa do índice da linha antes de salvar o resultado na linha em questão. Segue exemplo:
$('input[id^="ID_ValorUnitario"]').not(':first').click((e)=>{
let valorUnitario = e.target.value;
//ajusta a mascara de valores
valorUnitario = valorUnitario.replace('.','');
valorUnitario = valorUnitario.replace(',','.');
if(isFinite(parseFloat(valorUnitario))){
let id = e.target.id.split('___');
let qtd = $('#idCampoQuantidade___'+id).val();
let valorItemLinha = parseFloat(valorUnitario)*parseFloat(qtd);
$("#id_valorTotalLinha___"+id).val(valorItemLinha);
}
})
Essa função você pode colocar no onload da pagina.
Espero ter ajudado;