Hola que tal,bien, pues tengo un formulario que contiene 12 chackbox y cada uno tiene el valor de 8.3333333333333333333333333333333 y un input tipo text con el id=total en el cual me va mostrando la cantidad que llevo si es que los activo o desactivo ; cuando se activan todos los chackbox me da un total de "100" pero puedo no activar todos y que solo llegue a "50" y asi guardarlos a la base de datos (los chackbox como "1" o "0") y la cantidad que sume.
y eso lo hago con esta funcion:
<script type="text/javascript">
var total=0;
function sumar(valor) {
total += valor;
document.formulario.total.value=total;
}
function restar(valor) {
total-=valor;
document.formulario.total.value=total;
}
</script>
... estos algunos checkbox:
<input name="checkbox1" id="checkbox1" type="checkbox" <?php echo $check1 == '1' ? 'checked' : ''; ?> onclick="if (this.checked) sumar(8.3333333333333333333333333333333); else restar(8.3333333333333333333333333333333)"> 1.Formato
<input type="checkbox" id="checkbox2" value="2" name="checkbox2" <?php echo $check2 == '1' ? 'checked' : ''; ?> onclick="if (this.checked) sumar(8.3333333333333333333333333333333); else restar(8.3333333333333333333333333333333)"> 2.Ante
.... y asi hasta los 12...
Pero a la hora de querer modificar (ir activando los checkbox que faltaron para llegar a "100")
trate de esta forma:
<script type="text/javascript">
var total=document.getElementById("total").value;
function sumar(valor) {
total += valor;
document.formulario.total.value=total;
}
function restar(valor) {
total-=valor;
document.formulario.total.value=total;
}
</script>
Despues abro un formulario donde cargo todo lo guardado pero a la hora de activar los checkbox que no lo estaban me sale esto en el input text: NaN
y he tratado con esta otra:
<script type="text/javascript">
var total = 0;
function comprobarChecks()
{
var checks = document.getElementsByTagName("input"); //recojo todos los input
for(i=0;i<checks.length;i++)
{
if(checks.type=="checkbox") //solo contemplo los de tipo checkbox
{
if(checks.checked) //si esta checkado agrego a total su valor
total += parseFloat(checks.value);
}
}
}
</script>
Pero nada de nada. este es mi input: <input type=text name=total id="total" value="<?php echo $fila_campos['porciento_avances']?>">