Foros del Web » Programando para Internet » Javascript »

Dos detalles

Estas en el tema de Dos detalles en el foro de Javascript en Foros del Web. Buenas! Vereis, he hecho e siguiente script: Código PHP: < html > < head > < script type = "text/javascript" > function  validar (){     var  count  ...
  #1 (permalink)  
Antiguo 04/01/2009, 13:43
 
Fecha de Ingreso: febrero-2008
Mensajes: 39
Antigüedad: 17 años
Puntos: 0
Dos detalles

Buenas!
Vereis, he hecho e siguiente script:

Código PHP:
<html>
<
head>


<
script type="text/javascript">
function 
validar(){

    var 
count 0;

    for (
i=0i<document.frmPaises.paises.lengthi++){
        
        
        
        if (
document.frmPaises.paises[i].checked==true){
            
count += parseFloat(document.frmPaises.lolori[i].value);
            var 
count2 = (document.frmPaises.total.value count);
            
document.frmPaises.polop.value count2;

        }
    
    }

}
</script>
</head>
<body>

<form name="frmPaises" id="frmPaises">
<input type="checkbox" name="paises"  onClick="validar();"><input type="hidden" name="lolori" value ="1" />
1<br />
<input type="checkbox" name="paises"  onClick="validar();"><input type="hidden" name="lolori" value ="2" />
2<br />
<input type="checkbox" name="paises"  onClick="validar();"><input type="hidden" name="lolori" value ="3" />
3<br />
<input type="checkbox" name="paises"  onClick="validar();"><input type="hidden" name="lolori" value ="4" />
4<br />
<input type="checkbox" name="paises"  onClick="validar();"><input type="hidden" name="lolori" value ="5" />
5<br />
<input type="checkbox" name="paises"  onClick="validar();"><input type="hidden" name="lolori" value ="6" />
6<br />
<input type="checkbox" name="paises"  onClick="validar();"><input type="hidden" name="lolori" value ="7" />
7<br />
<input type="checkbox" name="paises"  onClick="validar();"><input type="hidden" name="lolori" value ="8" />
8<br />
<input type="text" name="polop" value ="500"/><input type="text" name="total" value ="500"/><br />
</form>

</body>
</html> 
Pero tiene un pequeño fallo que no se solucionar, y esque cuando no hay ningún checkbox seleccionado, se queda el valor que le restó el último checkbox en lugar del valor inicial, osea 500...

Y un detalle más gráfico, me gustaría que el resultado de la resta saliese escrito en la misma página, no dentro de una caja de texto.. ¿qué instrucción era? xk write me lo pone en una hoja nueva.

Mil gracias!
  #2 (permalink)  
Antiguo 04/01/2009, 15:08
 
Fecha de Ingreso: febrero-2008
Mensajes: 39
Antigüedad: 17 años
Puntos: 0
Respuesta: Dos detalles

Ya he solucionado lo de escribir sin el input:

Código PHP:
<script>
...
var 
parent document.getElementById'finally' );
parent.innerHTML="<div>" count +"</div>";
</script>

<body>
<div id="finally"></div>
</body> 
Ahora falta lo de que cuando se deseleccionen todos los checkbox se quede el resultado inicial sin restarle nada. Ej:
Inicial: 500
Checkbox con value 100 hace que inicial baje a 400 pero al deseccionarlo se queda en 400
  #3 (permalink)  
Antiguo 04/01/2009, 20:14
 
Fecha de Ingreso: enero-2008
Mensajes: 53
Antigüedad: 17 años
Puntos: 0
Respuesta: Dos detalles

Y si pusieses una pregunta después del for, que pregunte si count es == 0?

O sea...

Código:
<script type="text/javascript">
function validar(){

    var count = 0;

    for (i=0; i<document.frmPaises.paises.length; i++){
        
        
        
        if (document.frmPaises.paises[i].checked==true){
            count += parseFloat(document.frmPaises.lolori[i].value);
            var count2 = (document.frmPaises.total.value - count);
            document.frmPaises.polop.value = count2;

        }
    
    }

    if(count == 0)
         document.frmPaises.polop.value = 500;

}
</script>
Saludos
  #4 (permalink)  
Antiguo 05/01/2009, 07:08
 
Fecha de Ingreso: febrero-2008
Mensajes: 39
Antigüedad: 17 años
Puntos: 0
Respuesta: Dos detalles

Mil gracias!
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




La zona horaria es GMT -6. Ahora son las 10:52.