Calcolo in javascript

di il
1 risposte

Calcolo in javascript

Ciao a tutti, scrivo qui sperando in un aiuto, perché non riesco a creare questo semplice calcolo con javascript, ho 3 valori fissi, ai quali bisogna aggiungere una percentuale, copio il codice per capirci:


<script type="text/javascript">
function HandleKey()
{
var somma=parseInt(document.form1.durata1.value);
var perc='10%';

if(document.form1.durata1.checked)
somma=somma+parseInt(document.form1.durata1.value);
document.form1.somma.value=somma;
if(document.form1.durata2.checked)
somma=somma+parseInt(document.form1.durata2.value);
document.form1.somma.value=somma;
if(document.form1.durata3.checked)
somma=somma+parseInt(document.form1.durata3.value);
document.form1.somma.value=somma;

if(document.form1.zona1.checked)
somma=somma+parseInt(document.form1.zona1.value);
document.form1.somma.value=somma;

if(document.form1.zona2.checked)
somma=somma+parseInt(document.form1.zona2.value);
document.form1.somma.value=somma;

if(document.form1.zona3.checked)
somma=somma+parseInt(document.form1.zona3.value);
document.form1.somma.value=somma;
}
</script>


<body onload="HandleKey()">
<form name="form1" method="post" action="">

durata1 <input name="durata1" type="checkbox" onClick="HandleKey()" value="800" >

durata2 <input name="durata2" type="checkbox" onClick="HandleKey()" value="1500" >

durata3 <input name="durata3" type="checkbox" onClick="HandleKey()" value="2500" >

<p>
zona1 <input name="zona1" type="checkbox" onClick="HandleKey()" value="0" >
zona2 <input name="zona2" type="checkbox" onClick="HandleKey()" value="0" >
zona3 <input name="zona3" type="checkbox" onClick="HandleKey()" value="0" >
</p>

<p>somma <input name="somma" type="textbox">

</p>
</form>
------------------------------


Cliccando su durata1 2 e 3 mi dà il valore di default, quello che mi serve e che cliccando su zona1 aumenta del 10%, zona2 sempre del 10% e zona3 del 20%

In pratica per capirci il primo risultato 800+10% deve restituire 880 e cosi via... e far in modo che se spunto una casella non posso spuntare un altra della stessa riga.

Se c'è una anima buona che mi può aiutare... grazie.

1 Risposte

  • Re: Calcolo in javascript

    
    <script type="text/javascript">
    function HandleKey()
    {
    var somma=parseInt(document.form1.durata1.value);
    
    if(document.form1.durata1.checked) {
     somma=somma+parseInt(document.form1.durata1.value);
     document.form1.somma.value=somma;
    }
    if(document.form1.durata2.checked) {
     somma=somma+parseInt(document.form1.durata2.value);
     document.form1.somma.value=somma;
    }
    if(document.form1.durata3.checked) {
     somma=somma+parseInt(document.form1.durata3.value);
     document.form1.somma.value=somma;
    }
    
    if(document.form1.zona1.checked) {
     somma=somma+parseInt(document.form1.zona1.value);
     document.form1.somma.value=somma;
     document.form1.durata1.value=document.form1.durata1.value+(document.form1.durata1.value*0.1);
     document.form1.durata2.value=document.form1.durata2.value+(document.form1.durata2.value*0.1);
     document.form1.durata3.value=document.form1.durata3.value+(document.form1.durata3.value*0.1);
     document.form1.zona2.checked="false";
     document.form1.zona3.checked="false";
    } 
    
    if(document.form1.zona2.checked) {
     somma=somma+parseInt(document.form1.zona2.value);
     document.form1.somma.value=somma;
     document.form1.durata1.value=document.form1.durata1.value+(document.form1.durata1.value*0.1);
     document.form1.durata2.value=document.form1.durata2.value+(document.form1.durata2.value*0.1);
     document.form1.durata3.value=document.form1.durata3.value+(document.form1.durata3.value*0.1);
     document.form1.zona1.checked="false";
     document.form1.zona3.checked="false";
    } 
    
    if(document.form1.zona3.checked) {
     somma=somma+parseInt(document.form1.zona3.value);
     document.form1.somma.value=somma;
     document.form1.durata1.value=document.form1.durata1.value+(document.form1.durata1.value*0.2);
     document.form1.durata2.value=document.form1.durata2.value+(document.form1.durata2.value*0.2);
     document.form1.durata3.value=document.form1.durata3.value+(document.form1.durata3.value*0.2);
     document.form1.zona1.checked="false";
     document.form1.zona2.checked="false";
    } 
    }
    </script>
    
    
    <body onload="HandleKey()">
    <form name="form1" method="post" action="">
    
    durata1 <input name="durata1" type="checkbox" onClick="HandleKey()" value="800" >
    
    durata2 <input name="durata2" type="checkbox" onClick="HandleKey()" value="1500" >
    
    durata3 <input name="durata3" type="checkbox" onClick="HandleKey()" value="2500" >
    
    <p>
    zona1 <input name="zona1" type="checkbox" onClick="HandleKey()" value="0" >
    zona2 <input name="zona2" type="checkbox" onClick="HandleKey()" value="0" >
    zona3 <input name="zona3" type="checkbox" onClick="HandleKey()" value="0" >
    </p>
    
    <p>somma <input name="somma" type="textbox">
    
    </p>
    </form>
    
    ma ti consiglio di usare un parametro alla funzione oppure di trasformare gli if in if else.
Devi accedere o registrarti per scrivere nel forum
1 risposte