Sommare prezzi da campi multiple

z.cristiano

Utente Attivo
16 Giu 2007
128
0
16
Salve...
AIUTOOOO

Sul form, ho messo inserimenti automatici i campi con prezzi 5,00, cioè se inserisco 5 stessi campi:
HTML:
<input type="text" id="prezzo" value="5.00">
<input type="text" id="prezzo" value="5.00">
<input type="text" id="prezzo" value="5.00">
<input type="text" id="prezzo" value="5.00">
<input type="text" id="prezzo" value="5.00">
<input type="text" id="prezzo" value="5.00">
<div id="totale_box" onblur="sommare();></div>

Com'è il codice corretto per sommare in totale di 5.00*6?
NOn dovrebbe essere così?

<script>

function sommare()
{

var prezzi = document.getElementById('prezzo');

for(i = 0; i < prezzi.lenght; i++)
{

totale += prezzi[i].value;

}

document.getElementById('totale_box').innerHTML = eval(totale);

}

window.onload = function()
{

sommare();

}

</script>
Funziona lo script, ma fa male i calcoli ossia, doveva essere 30.00 e invece viene sommato così 29.000
Perchè?
Cosa ho sbagliato?
 
Ultima modifica di un moderatore:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,
non puoi dare lo stesso id a tutti gli input, in questo caso non ti serve nemmeno: puoi recuperare tutti i campi del form con document.forms[0].elements

Piu o meno potresti provare cosi:

HTML:
<form>
    <input onkeyup="sommare()" type="text" value="5.00">
    <input onkeyup="sommare()" type="text" value="5.00">
    <input onkeyup="sommare()" type="text" value="5.00">
    <input onkeyup="sommare()" type="text" value="5.00">
    <input onkeyup="sommare()" type="text" value="5.00">
    <input onkeyup="sommare()" type="text" value="5.00">
</form>

<div id="totale_box"></div>
<script>

    function sommare()
    {
        //conti gli elementi del form
        var elementi = document.forms[0].elements.length;
        //inizializzi la somma
        var somma = 0;
        // cicli il form
        for(var i = 0; i < elementi; i++){    
       // incrementi la somma        
            somma += parseInt(document.forms[0].elements[i].value);            
        }
        // mostri il risultato
        document.getElementById('totale_box').innerHTML = somma;
    }

    window.onload = function()
    {
        sommare();
    }
</script>
PS: Racchiudi il codice che posti tra i tag presenti sulla barra di formattazione (seconda riga , ultime tre icone , CODE,HTML,o PHP)