Ir para conteúdo

POWERED BY:

Arquivado

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

Fabiano Lima_44678

Não consigo efetuar a soma dos campos

Recommended Posts

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 
<html>
<head>
<title>Exemplo de utilização de arrays</title>
<script type="text/javascript" src="../js/jquery.min.1.5.1.js"></script>
</head>
 
<body>
<form >
<input type="text" id="sub[]" name="sub[]" value="10.00" />
<input type="text" id="sub[]" name="sub[]" value="5.00" />
</form>
<script language="JavaScript">
function moeda2float(moeda){moeda = moeda.replace(".","");moeda = moeda.replace(",",".");return parseFloat(moeda);}
 
function float2moeda(num) {
x = 0;
   if(num<0) {num = Math.abs(num);x = 1;}
   if(isNaN(num)) num = "0";
   cents = Math.floor((num*100+0.5)0);
 
   num = Math.floor((num*100+0.5)/100).toString();
 
   if(cents < 10) cents = "0" + cents;
   for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
   num = num.substring(0,num.length-(4*i+3))+'.'+num.substring(num.length-(4*i+3));   ret = num + ',' + cents;   if (x == 1) ret = ' - ' + ret;return ret;
}
/*var meuArray = new Array() 
 
meuArray[0] = 1.00 
meuArray[1] = 1.00 
meuArray[2] = 1.00 
meuArray[3] = 1.00 
meuArray[4] = 2.00 
meuArray[5] = 2.00 */
 
var inputs = new Array();
$('input[name*="sub"]').each(function()
{
inputs.push($(this).val());
});
document.write(""+inputs+"")
for(var i=0,sum=0;i<inputs.length;sum+=inputs[i++]);
document.write("R$ "+ float2moeda(sum) +"") 
 
 
</script>
 
 
</body>
</html>

 

resultado

 

 

 

10.00,5.00

 

R$ 0,00

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está fazendo uma confusão com tipos de campos (convertendo inteiros para strings e ainda tentando fazer cálculos com eles). JavaScript não é como PHP onde [inline]"1" == 1[/inline]. Se você fizer um "calculo" [inline]"1" + "1"[/inline] o resultado será [inline]"11"[/inline], ou seja, na verdade, é uma concatenação.

 

Valores trazidos de elementos HTML são sempre do tipo [inline]String[/inline] e precisam ser convertidos para inteiros ou pontos-flutuantes antes de serem usados para cálculos usando as funções [inline]parseInt[/inline] ou [inline]parseFloat[/inline], respectivamente.

 

Valores do atributo [inline]id[/inline] precisam ser únicos no documento, não devendo haver mais de um elemento com o mesmo ID. [inline]sub[][/inline] só pode ser usado no atributo [inline]name[/inline].

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.