Ir para conteúdo

POWERED BY:

Arquivado

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

lfranca

[Resolvido] funcao soma

Recommended Posts

Estou batendo cabeça pra fazer uma funcao de soma, eu tenho uma quantidade x de check box o numerod de check box q aparece na tela depende da quantidade de registros retornado do banco.

 

<input name="box" id="box<%=cont%>" type="checkbox" value="<%=rs("teste")%>" onclick="teste(box<%=cont%>.value);">

 

o que eu preciso e q sempre q um desses check box estiverem no estado checked, os seus valores vao sendo somados e no final diminuidos de um valor ja pre determinado, ou seja se eu tenho 4 check box na tela e cd um deles tem o valor respectivo de , 2 ,3 ,4 e 5 eu tenho q somar esses valores , total 14, e diminuir de outro valor , ex 14 - 10.

 

Alguem tem ideia de como fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bata a cabeça mais um pouco que você acha a solução.. IUAuHIAhiUAhA

 

Zoeira...

 

Crie um botão no final da sua página e nele chame a função abaixo:

 

function somaChk()
{

var checks = document.getElementsByTagName("input");
var totalchk = 0;
var valor = 10;
var total = 0;
for(i=0;i<checks.length;i++)
	{	
		if(checks[i].getAttribute("type") == "checkbox")
		{
			if(checks[i].checked == true)
			{
				totalchk = totalchk + parseFloat(checks[i].value);
			}
		}
	}

total = totalchk - valor;

document.getElementById("iddadivondevaioresultado").innerHTML = total;
}

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tinha chegado + - nessa função, a minha ficou da seguinte forma:

 

function teste(cont){	
	var totinv = document.frm.tot.value;	
	for(i=0;i<=cont-1;i++){
		if (document.frm.box[i].checked == true){
		alert(i);
		var teste2 = parseFloat(document.getElementById('amount'+i).value);		
		alert(teste2);
		}
	}
}

So um probleminha qnd eu uso o parseFloat ele arredonda o numero, sera q e por causa da formatação o numero esta da seguinte forma, Ex: 2,453.24 se dai ele me retorna so 2, se eu trocar a , por ponto sera q acerta, so q depois eu vou ter q destrocar qnd jogar na box, ne?

 

Dei uma olhada por ai no forum vo usar o replace(",",".").

 

Vlw a ajuda ai

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz o código abaixo que trabalha com valores monetários. Pelos testes que realizei, está funcionando bem no IE7.

<html>
<head>
<title></title>
<script type="text/javascript">
function somar() {
var objCheckBox = document.forms["form1"].elements["checkbox1"];
var iLoop;
//Pegando a parte antes da vírgula:
var subTotal1 = 0;
var RegExp1 = /^[\d][\d]+/g;
//Pegando a parte depois da vírgula:
var subTotal2 = 0;
var RegExp2 = /[\d]+[\d]$/g;

	for (iLoop = 0; iLoop < objCheckBox.length; iLoop++) {
		if (objCheckBox[iLoop].checked == true) {
			//Verificando se existe vírgula no valor retornado:
			if(objCheckBox[iLoop].value.indexOf(",",0) != -1) {
			 	//Se houver, somar as partes antes e depois da vírgula, com o uso de ER:
				subTotal1 += parseFloat(objCheckBox[iLoop].value.match(RegExp1));
				subTotal2 += parseFloat(objCheckBox[iLoop].value.match(RegExp2));
				//Posteriormente faremos o cálculo final dessa soma, 
				//pois a segunda parte poderá ser maior que 100;
			} else {
				//Se não houver, somar todo o valor a subTotal1:
				subTotal1 += objCheckBox[iLoop].value;
			}
		}
	}
	
//Calculando o valor final:
	if(subTotal2 == 100) {
		subTotal1 += 1;
		subTotal2 = "00";
	} else if (subTotal2 > 100) {
		var resultado = Math.floor(subTotal2/100);
		subTotal1 += resultado;
		var resto = subTotal2-(100*resultado);
		subTotal2 = resto;
	}
document.form1.subtotal.value = subTotal1+ ","+subTotal2;
var preDet = parseFloat(document.form1.predet.value.match(RegExp1)+"."+document.form1.predet.value.match(RegExp2));
var Total = parseFloat(subTotal1+"."+subTotal2)-preDet;
Total = Total.toFixed(2);
Total = ""+Total;
Total = Total.replace(".",",");
document.form1.total.value = Total;
}
</script>
</head>
<body>

<form name="form1" method="post">
<input type="checkbox" name="checkbox1" value="2354,56"> 2354,56
<br><input type="checkbox" name="checkbox1" value="1350,11"> 1350,11
<br><input type="checkbox" name="checkbox1" value="5378,85"> 5378,85
<br><input type="checkbox" name="checkbox1" value="4477,15"> 4477,15
<br><input type="checkbox" name="checkbox1" value="7548,47"> 7548,47
<br>Sub-total: <input type="text" name="subtotal" value="">
<br>Valor pré-determinado: <input type="text" name="predet" value="3000,00">
<br><br>Total: <input type="text" name="total">

<br><br>
<input type="button" value=" Calcular " onClick="somar()">
</form>

</body>
</html>

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.