Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Sommare i numeri con FOR

    Ciao, non riesco a sommare i numeri, cioè ci sono 4 campi con
    2
    4
    6
    8

    Se ci fosse un solo campo numero 2 non funziona, se ci fosse 4 funziona e somma..
    Perchè?

    Ecco il codice HTML

    <form name="form" id="form">
    <input type="text" name="prezzo" value="2">
    <input type="text" name="prezzo" value="4">
    <input type="text" name="prezzo" value="6">
    <input type="text" name="prezzo" value="8">
    <input type="submit" value="Calcola" onclick="calcola();">
    </form>

    codice javascript

    <script>

    function calcola()
    {

    var somma = 0;

    var prezzo = document.form.prezzo;


    for(var i = 0; i <= prezzo.length; i++)
    {

    somma += parseFloat(prezzo[i].value);

    alert(somma);

    }

    }

    </script>

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </style>
    <script>
    
    function calcola()
    {
    var somma = 0;
    var prezzo = document.form1.elements['prezzo'];
    for(var i = 0; i <= prezzo.length; i++)
    {
    if(!/[0-9 \,]/.test(prezzo[i].value)){somma = 'inserire solo numeri'}
    else{
    var valore = (prezzo[i].value=="")? 0 : parseFloat(prezzo[i].value.replace(',','.'))
    somma += valore;
    }
    document.getElementById('risultato').innerHTML=somma.toFixed(2);
    }
    
    }
    
    </script>
    </head>
    <body>
    
    <form name="form1" id="form1">
    <input type="text" name="prezzo" value="2">
    <input type="text" name="prezzo" value="4">
    <input type="text" name="prezzo" value="6">
    <input type="text" name="prezzo" value="8">
    <input name="Button" type="button" onclick="calcola();" value="Calcola">
    </form>
    <div id="risultato"></div>
    </body>
    </html>
    Questo funziona, cerano diversi errori tipo:
    - le parole form, input, select, etc... sono sconsigliati da usare come nomi
    - se usi il tasto submit l'onclick non viene processato correttamente
    - se usi gli stessi nomi per i campi devi riferirti alla "collezione" form1.elements['nome']
    Ho anche aggiunto il controllo che sia un numero e che il campo sia compilato (in caso di campo vuoto aggiunge zero alla somma) e il cambio virgola/punto
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.