... pasé por distintas fases....
primero me divertí mucho...
luego comenzó el dolor de cabeza, pero casi estaba....
luego los nombres de los últimos campos me lo fastidió todo...
...con el dolor de cabeza era dificil pensar (se me mareó la neurona)
... pero a base de parches, salió (lástima el último nombre del último checkbox, ese.... ese es el que lo ha liado todo!
)
En fin .... a ver si te sirve
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Agregar o quitar valores con checkboxes</title>
<script language="JavaScript" type="text/JavaScript">
<!--
function sumaItems(que,donde){
if(que.checked){
donde.AddFormWebModularTot.value = parseInt(donde.AddFormWebModularTot.value) + parseInt(eval("donde.fieldsetMod" + que.name.charAt(que.name.length-1) + ".value"))
}
else{
donde.AddFormWebModularTot.value = parseInt(donde.AddFormWebModularTot.value) - parseInt(eval("donde.fieldsetMod" + que.name.charAt(que.name.length-1) + ".value"))
}
}
var otro = 0
function sumaItems2(que,donde){
if(que.name == "fieldsetModOther"){sumaItems3(parseInt(que.value) );return false}
valor = 0
for(m=0;m<donde.elements.length;m++){
if(donde.elements[m].name.indexOf(que.name.substring(0,que.name.length-1))>-1 && donde.elements[m].name != "fieldsetModOther"){
if(eval("donde.CMod" + donde.elements[m].name.charAt(que.name.length-1) + ".checked")){
valor += parseInt(donde.elements[m].value)
}
}
}
if(donde.COtherMod.checked){valor += otro}
donde.AddFormWebModularTot.value = valor
}
function sumaItems3(val){
valor =document.forms[0].AddFormWebModularTot.value
valor-=otro
valor += val
document.forms[0].AddFormWebModularTot.value = valor
otro = val
}
function sumaItems4(que,donde){
if(que.checked){
donde.AddFormWebModularTot.value = parseInt(donde.AddFormWebModularTot.value) + parseInt(donde.fieldsetModOther.value)
}
else{
donde.AddFormWebModularTot.value = parseInt(donde.AddFormWebModularTot.value) - parseInt(donde.fieldsetModOther.value)
}
otro = parseInt(donde.fieldsetModOther.value)
}
function asigna(){
for(t=0;t<document.forms[0].elements.length;t++){
if(document.forms[0].elements[t].onclick!=null){
if(document.forms[0].elements[t].type == "checkbox" && document.forms[0].elements[t].name.indexOf('CMod')==0){
document.forms[0].elements[t].onclick = function(){
eval("flvFTFO1('frmWebModular','fieldsetMod" + this.name.charAt(this.name.length-1) + ",t')")
sumaItems(this,this.form)
}
}
}
if(document.forms[0].elements[t].type.indexOf("select")> -1 && document.forms[0].elements[t].name.indexOf('fieldsetMod')==0){
document.forms[0].elements[t].onchange = function(){
sumaItems2(this,this.form)
}
}
}
}
window.onload = asigna
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function flvFTFO1(){// v1.1
// Copyright 2003, Marja Ribbers-de Vroed, FlevOOware (
www.flevooware.nl/dreamweaver/)
if (!document.layers){var v1=arguments,v2=MM_findObj(v1[0]),v3,v4,v5,v6,v7,v8,v9,v10;if (v2){for (v3=1;v3<v1.length;v3++){v6=v1[v3].split(",");v7=v6[0];v8=v6[1];v10=false;for (v4=0;v4<v2.length;v4++){v5=v2[v4];if (v5.id==v7||v5.name==v7){v10=true;break;}}if (!v10){v5=MM_findObj(v7);v10=(!v5)?false:true;}if (v10){if (v8=="t"){v5.disabled=!v5.disabled;}else {v9=(v8=="e")?false:true;v5.disabled=v9;}}}}}}
//-->
</script>
<style type="text/css">
<!--
body,td,th {
font-family: Tahoma;
font-size: 11px;
}
-->
</style></head>
<body>
<form action="" method="post" name="frmWebModular" id="frmWebModular">
<table width="527" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="19" valign="top"><table width="470" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="244"><input name="checkbox" type="checkbox" value="checkbox" checked disabled>
<span class="txt3">Módulo Básico</span><br>
</td>
<td width="226" rowspan="2" valign="top" style="padding: 5px 5px 5px 5px;"><table width="180" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="15"><input name="DesignKind" type="radio" value="Diseño Personalizable" id="DK1"></td>
<td height="40" class="txt2"><label for="DK1" style="cursor: hand;"><span class="txt3">Valor
Opcion Alterna 1 </span><br>
Valor $150.000</label></td>
</tr>
<tr>
<td width="15"><input name="DesignKind" type="radio" value="Diseño Exclusivo" id="DK2"></td>
<td height="40" class="txt2"><label for="DK2" style="cursor:hand;"><span class="txt3">Valor
Opcion Alterna 2 </span><br>
Valor $300.000</label></td>
</tr>
</table></td>
</tr>
<tr>
<td width="244" valign="top" style="padding: 5px 0px 0px 20px;">Opciones</td>
</tr>
</table></td>
</tr>
<tr>
<td height="5" valign="top"></td>
</tr>
<tr>
<td height="1" bgcolor="#000066"></td>
</tr>
<tr>
<td style="padding: 5px 5px 5px 5px;"><table width="450" border="0" align="center" cellpadding="0" cellspacing="0" >
<!--DWLayoutTable-->
<tr align="center">
<td colspan="6" valign="top" class="txt3" style="padding: 5px 5px 5px 5px;">Módulos
Adicionales</td>
</tr>
<tr>
<td height="21" colspan="3" valign="top" class="txt2"><input name="CModB" type="checkbox" id="CModB" value="1" onClick="flvFTFO1('frmWebModular','fieldsetModB,t' );sumaItems(this,this.form)">
<select name="fieldsetModB" id="fieldsetModB" disabled>
<option value="1">1</option><option value="2">2</option><option value="3">3</option><option value="4">4</option><option value="5">5</option></select>
Ítem
<input type="hidden" name="valueMod1" value="0"></td>