Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Leandro Lucas

Somar e Multiplicar campos

Recommended Posts

Tenho uma tabela que me lista produtos do banco, ao selecionar o checkbox ele soma os valores tudo certo, porém

preciso que o usuário também coloque a quantidade para cada produto

Ao digitar a quantidade e selecionar ele teria que somar os valores * a quantidade escolhida

 

Só que o código que tenho só pega a primeira quantidade, alguém poderia dar uma ideia?

 

function soma_valores(campo)
{
if(campo.checked)
{

var qtd = document.getElementById("qtd").value;
alert(qtd);

var valor_anterior = parseFloat(document.getElementById("soma").value);
var valor_novo = valor_anterior + parseFloat(campo.getAttribute("val1"));
document.getElementById("soma").value = valor_novo;
 
var valor_anterior2 = parseFloat(document.getElementById("soma").value);
var valor_novo2 = valor_anterior2 + parseFloat(campo.getAttribute("val2"));
document.getElementById("soma").value = valor_novo2;
 
}
else
{
var valor_anterior = document.getElementById("soma").value;
var valor_novo = valor_anterior-campo.getAttribute("val1");
document.getElementById("soma").value = valor_novo;
 
 
var valor_anterior2 = document.getElementById("soma").value;
var valor_novo2 = valor_anterior2-campo.getAttribute("val2");
document.getElementById("soma").value = valor_novo2;
}
 
}
<input type='number' id='qtd'  name='qtd[]'/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

E ai freitas, valido sua ideia, consegui pegar, porém um problema

 

segue codigo;

$(".qtd").each(function(){
 
qtd = ($(this).val());
 
var valor =  parseFloat(campo.getAttribute("val1")) * qtd;
var valor_anterior = parseFloat(document.getElementById("soma").value);
var valor_novo = valor_anterior + valor;
 
document.getElementById("soma").value = valor_novo.toFixed(2);
var valor_anterior2 = parseFloat(document.getElementById("soma").value);
var valor_novo2 = valor_anterior2 + parseFloat(campo.getAttribute("val2"));
document.getElementById("soma").value = valor_novo2.toFixed(2);
});
 
Ele pega quantidade porem ao multiplicar com o valor, o resultado é incorreto, ele pega varias vezes o mesmo valor ao inves de pegar uma vez só, pode dar uma ideia?

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu acho que imaginei outra coisa no seu codigo..

 

o .each() do jquery é um loop

 

vamos lá.

 

da uma postada no HTML..

 

mas basicamente....

 

eu imagino que voce tenha o seguinte HTML

 

<select name="produto" id="produto">
   <option value="10">produto 1</option>
</select>
<br />

<input type="text" name="quantidade" id="quantidade" />
<button>calcular</button>
$(function(){
   $("button").click(function(){
     var precoProduto = parseFloat($("#produto").val());
     var quantidade = parseInt($(#quantidade).val());

      alert(quantidade*precoProduto);
   })

})

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na realidade eu tenho uma tabela que me lista os produtos do banco, para cada produto um checkbox e na frente o campo quantidade

 

Então teria que pegar da seguinte forma: ao selecionar pegar a quantidade inserida * o valor do produto(val1 do código acima)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.