Entendido el porque.
Pero así tienes otro problema en el total no sabes que se ha sumado y que no por lo tanto no puedes restar sin mas el valor contrario del grupo de radios...
Imagina que tienes 2 grupos de radios de tres elementos y un checkbox como los que siguen
Radio11 value 100
Radio12 value 150
Radio13 value 200
Radio21 value 100
Radio22 value 150
Radio23 value 200
Checkbox value 100
Total Value 200
Al hacer un cambio debes recorrer todos los posibles valores para poder determinar que sumas y que restas puesto que no sabes que tenias marcado antes.... es decir obtener de nuevo el total des de cero no restando el valor anterior puesto que no sabes qual era... el grupo uno de radios podia ser 0, 100 o 200 teniendo en cuenta que tenemos 200 en el total...
No digo que no se puede hacer pero cambiará en función del numero de grupos que tengas de las opciones de estos etc...
El objeto formulario te puede ayudar, si puedes discriminar que objetos son costes y que no...
Ahí va...
Código HTML:
Ver original<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> function Suma(formulario){
total=0;
nombre="";
for(i=0;i<formulario.elements.length;i++){
if(formulario.elements[i].type=="radio" && nombre!=formulario.elements[i].name){
nombre=formulario.elements[i].name;
grupo=document.getElementsByName(nombre);
for(j=0;j<grupo.length;j++){
if(grupo[j].checked){
total+=parseInt(grupo[j].value);
}
}
}else if (formulario.elements[i].type=="checkbox"){
if(formulario.elements[i].checked){
total+=parseInt(formulario.elements[i].value);
}
}
}
document.form1.total.value = total;
}
<form method="post" name="form1"> Motor 1
<input name="grupo_radio" id="radio_1" onclick="Suma(this.form)" type="radio" value="100" /></p> Motor 2
<input name="grupo_radio" id="radio_2" onclick="Suma(this.form)" type="radio" value="50" /></p> Motor 1
<input name="grupo_radio2" id="radio_3" onclick="Suma(this.form)" type="radio" value="300" /></p> Motor 2
<input name="grupo_radio2" id="radio_4" onclick="Suma(this.form)" type="radio" value="25" /></p> Extra 1
<input name="chec_1" id="chec_1" onclick="Suma(this.form)" type="checkbox" value="500" /></p> Total
<input name="total" type="text" value="0" /></p>
Solo suma radios y cheks... pero creo que puede servir para cualquier formulario con independencia del numero de grupos de radios y cheks....