Foros del Web » Programando para Internet » Javascript »

Suma y resta

Estas en el tema de Suma y resta en el foro de Javascript en Foros del Web. Buenas!!! No se muy bien como explicar el tema asi que les explico lo que tengo y lo que necesito sacar de ahi. tengo una ...
  #1 (permalink)  
Antiguo 06/08/2003, 11:39
Avatar de pablinweb  
Fecha de Ingreso: julio-2003
Mensajes: 283
Antigüedad: 20 años, 9 meses
Puntos: 0
Suma y resta

Buenas!!!

No se muy bien como explicar el tema asi que les explico lo que tengo y lo que necesito sacar de ahi.

tengo una serie de filas en una tabla que es dinamica con respecto a una vase de datos entonces en cada fila tengo:

1º checkbox, name=chk, value=Id (correspondiente al Id de la bd)
2º textbox, name=Id, value=Monto (correspondiente al monto de la Bd)

todos los checkbox se llaman igual, y ademas tengo un unico textbox name=Suma, value=0

lo que necesito hacer es que cuando activen un checkbox me sume el monto en el campo suma y cuando lo desactiven lo reste.

Espero haberme explicado bien...

Saludos y desde ya muchas gracias por su tiempo!!!
  #2 (permalink)  
Antiguo 07/08/2003, 01:40
Avatar de biblio  
Fecha de Ingreso: enero-2002
Ubicación: Urano
Mensajes: 577
Antigüedad: 22 años, 3 meses
Puntos: 0
Hola, para los textos he antepuesto txt, la suma y resta funcionan, la mejora al script ya lo haras segun tu necesidad, con esto ya tienes una base. Espero te sirva.

Código:
<html>
<head>
<title>Untitled Document</title>
<script language="JavaScript" type="text/JavaScript">
function _Sum(){
	var newval=0;
	var frm = document.main;
	for(i=0;i< frm.length;i++){
		e=frm.elements[i];
		var aux = "frm.txt"+e.value+".value";
		if (e.type=='checkbox' && e.checked){			
			newval += parseInt(eval(aux),10);
		}else if(e.type=='checkbox' && !e.checked){
			newval -= parseInt(eval(aux),10);
		}
	}
	frm.sum.value = newval;
}
</script>
</head>

<body>
<form action="" method="post" name="main" id="main">
  <p> 
    <input name="chk" type="checkbox" id="chk" onClick="javascript:_Sum();" value="1">
    <input name="txt1" type="text" id="txt1" value="10" readonly="true">
    <br>
    <input name="chk" type="checkbox" id="chk" onClick="javascript:_Sum();" value="2">
    <input name="txt2" type="text" id="txt2" value="15" readonly="true">
    <br>
    <input name="chk" type="checkbox" id="chk" onClick="javascript:_Sum();" value="3">
    <input name="txt3" type="text" id="txt3" value="20" readonly="true">
    <br>
    <input name="sum" type="text" id="sum" value="40">
  </p>
  </form>
</body>
</html>
Saludos

Última edición por biblio; 07/08/2003 a las 01:46
  #3 (permalink)  
Antiguo 07/08/2003, 08:54
Avatar de pablinweb  
Fecha de Ingreso: julio-2003
Mensajes: 283
Antigüedad: 20 años, 9 meses
Puntos: 0
Muchas gracias Biblio, medio que el ejemplo me suma cualquier cosa pero la base esta, ahora me toca laburar un poco a mi.

Saludos y muchas gracias por tu tiempo.
  #4 (permalink)  
Antiguo 07/08/2003, 11:57
Avatar de pablinweb  
Fecha de Ingreso: julio-2003
Mensajes: 283
Antigüedad: 20 años, 9 meses
Puntos: 0
Sabes que ya logre armar una funcion pero tengo unos problemitas con los numeros de mas de 3 cifras con decimales por ejemplo si tengo 300.54 todo bien pero cuando pongo 3000.54 todo mal. Te paso el codigo de la pagina completa para que lo veas

Saludos y muchas gracias por tu tiempo

<%@LANGUAGE="VBSCRIPT"%>
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">

function fSuma(obj,monto)
{
var t; var temp;
t = txtSuma.value;
temp = 0;
if (obj.checked == true){
temp = parseFloat(t) + parseFloat(monto);}
else
{temp = parseFloat(t) - parseFloat(monto);}
txtSuma.value = temp;
}
</script>
</head>

<body>
<div id="Layer1" style="position:absolute; left:314px; top:11px; width:80px; height:8px; z-index:1">
<table width="155" border="1">
<tr>
<td><input name="txtSuma" type="text" id="txtSuma" value="0"></td>
</tr>
</table>

</div>
<p>&nbsp;</p>
<form name="form2" method="post" action="">
<table width="193" border="1" align="center">
<tr>
<td width="78"><div align="center">
<input name="chk" type="checkbox" id="chk11" value="1" onClick="fSuma(this,'2000.2')">
</div></td>
<td width="99">2000.2</td>
</tr>
<tr>
<td><div align="center">
<input name="chk" type="checkbox" id="chk11" value="2" onClick="fSuma(this,'2000.1')">
</div></td>
<td>2000.1</td>
</tr>
<tr>
<td><div align="center">
<input name="chk" type="checkbox" id="chk11" value="3" onClick="fSuma(this,'2345.22')">
</div></td>
<td>2345.22</td>
</tr>
<tr>
<td><div align="center">
<input name="chk" type="checkbox" id="chk11" value="4" onClick="fSuma(this,'2000.01')">
</div></td>
<td>2000.01</td>
</tr>
<tr>
<td><div align="center">
<input name="chk" type="checkbox" id="chk11" value="5" onClick="fSuma(this,'3000.42')">
</div></td>
<td>3000.42</td>
</tr>
<tr>
<td><div align="center">
<input name="chk" type="checkbox" id="chk11" value="6" onClick="fSuma(this,'20000.01')">
</div></td>
<td>20000.01</td>
</tr>
<tr>
<td><div align="center">
<input name="chk" type="checkbox" id="chk11" value="7" onClick="fSuma(this,'2000.4')">
</div></td>
<td>2000.4</td>
</tr>
<tr>
<td><div align="center">
<input name="chk" type="checkbox" id="chk11" value="8" onClick="fSuma(this,'35400.03')">
</div></td>
<td>35400.03</td>
</tr>
<tr>
<td><div align="center">
<input name="chk" type="checkbox" id="chk11" value="9" onClick="fSuma(this,'2000.23')">
</div></td>
<td>2000.23</td>
</tr>
<tr>
<td><div align="center">
<input name="chk" type="checkbox" id="chk11" value="10" onClick="fSuma(this,'2000.12')">
</div></td>
<td>2000.12</td>
</tr>
</table>
</form>
<p>&nbsp;</p>
</body>
</html>
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 02:46.