Jump to content


Photo

Calculo Javascript


  • Faça o login para participar
2 replies to this topic

#1 Menty

Menty

    Turista

  • Usuários
  • 26 posts
  • Sexo:Não informado

Posted 30/03/2011, 08:49

Olá companheiro, to com um probleminha q não consigo resolver. Tenho um formulario de pedido, no qual há o campo de quantidade (name="qnt[]" e id="qnt1") e valor unitário (name="vluni[]" e id="vluni1")...tenho um botão "ADICIONAR" q adiciona outra linha á tabela, possibilitando q outro pedido seja feito....ai os valores passam a ser (name="qnt[] e id="qnt2") e (name="vluni[]" e id="vluni2") e assim por diante...mas tbm tenho o botão excluir que apaga uma linha do pedido..(ex. tenho tds esses itens - qnt1, qnt2, qnt3 - se eu apagar o "qnt2"..vai ficar só o qnt1 e o qnt3)...mas aí q vem o problema... eu preciso calcular o valor final do pedido.. q seria a soma de tds os valores finais de cada item...mas de maneira dinâmica..pois não sei qnts itens o pedido vai ter nem quais vão ser os numeros deles (qnt1,qnt5,qnt37 etc...)
<script type="text/javascript" language="javascript">function calcular(){
var id = 1; var total = ''; for (id=1;id<10;id++){//veja q aki eu coloquei pra repetir somente 10 vezes..mas isso tem q ser de maneira dinamica

var valor = document.getElementById('vltot'+id).value; if((valor=='')||(typeof(valor)=='undefined')){ valor=0; }
//o campo "vltot" é referente ao valor total de cada item (ex. 15.00)
valor = Number(valor); total = total+valor;
} alert(total);/*este alert não é executado, não sei o pq, mas não xega nessa parte*/ }</script>

por favor, podem me ajudar ?

#2 LeoB

LeoB

    Super Veterano

  • Usuários
  • 1876 posts
  • Sexo:Masculino
  • Interesses:Programação

Posted 30/03/2011, 12:38

No mesmo botão que adiciona a linha, você coloca um contador pra saber o número máximo que existe. Depois, na hora de somar, faz com o for mesmo, usando essa variável como limite. Só precisa dentro do for verificar antes se o campo existe.

#3 Menty

Menty

    Turista

  • Usuários
  • 26 posts
  • Sexo:Não informado

Posted 31/03/2011, 10:07

No mesmo botão que adiciona a linha, você coloca um contador pra saber o número máximo que existe. Depois, na hora de somar, faz com o for mesmo, usando essa variável como limite. Só precisa dentro do for verificar antes se o campo existe.

cara...kkk fiz oq vc flo e deu certo....muito obrigado...vou postar o código...como ficou...EMBORA esteja um pouco confuso..funciona >>>
<script type="text/javascript" language="javascript">function calcular(){
var id = 1; document.getElementById('vltotbruto').value = 0; var valor = ''; var nome = ''; var id_item = document.getElementById('id_valor').value; var total = '';
id_item = parseInt(id_item); id_item = id_item+3; for (id=1;id<=id_item;id++){ if(!document.getElementById('vltot'+id)){}else{//se campo nao existir, faz nada
valor = document.getElementById('vltot'+id).value; if((valor=='')||(valor=='undefined')||(valor=='NaN')){ valor = 0; }//se valor do campo for nd (''), valor = 0
valor = Number(valor); document.getElementById('vltotbruto').value = (Number(document.getElementById('vltotbruto').value) + valor);
total = document.getElementById('vltotbruto').value; total = Number (total); document.getElementById('vltotbruto').value = total.toFixed(2); }}}</script>
a variavel '(id_item)' é a quantidade de campos q a tabela possui, esse campo eu aumento a cada vez q eu clico no botão pra acrescentar 1 campo, aumento 1 no valor da variavel '(id_item)'

muito obrigado LEOB.. ^^

Edição feita por: Menty, 31/03/2011, 10:09.





1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq