• User

    Sintassi corretta con ciclo javascript

    quello che devo fare io è un ciclo che mi prende il valore all'interno di un campo input chiamato "prezzo_totale".Di questo campo input ce ne sono svariati,quindi devo utilizzare un ciclo che mi richiama tutti i campi e una variabile all'interno del ciclo che mi cambi il numero relativo al campo.Il problema è che non so la sintassi per farlo.Ho provato di tutto,ma niente.Quello che ho scritto sotto non mi da errore,ma mi visualizza il testo,non il valore del campo,quindi in teoria è sbagliato anche questo.
    L'ho scritto solo per far capire meglio il problema.

    for (i=0;i<=n_web;i++){
    int = 'document.form1.prezzo_totale'+i+'.value';
    totale += parseFloat(int);
    }

    Sapete dirmi la sintatti corretta per quello che voglio fare io?(sempre se mi sono spiegato)

    Grazie!


  • User

    Intanto i campi dovrebbero avere una id univoca, non solo il name. Inoltre per prendere il valore di un elemento HTML, è meglio usare document.getElementById(...).

    Il codice dovrebbe essere il seguente:

    
            var totale = 0;
            for (var i=0; i <= 2; i++) {
              var campo = document.getElementById("name" + i);
              if (campo != null)
                  totale += parseFloat(campo.value);
            }
    
    

    Ricordati di creare la variabile prima del for, altrimenti per regole di visibilità, la variabile totale sarebbe visibile solo all'interno del for, e non all'esterno.

    Comunque se può esserti utile ecco un esempio dell'uso dello script
    [HTML]
    <html>
    <script type="text/javascript">
    <!--
    function somma()
    {
    var totale = 0;
    for (var i=0; i <= 2; i++) {
    var campo = document.getElementById("name" + i);
    if (campo != null)
    totale += parseFloat(campo.value);
    }

        alert(totale);
    }
    

    //-->
    </script>
    <body>
    <input type="text" id="name1" /><br />
    <input type="text" id="name2" /><br />
    <input type="button" value="Somma" onclick="somma()" />
    </body>
    </html>
    [/HTML]

    :ciauz:


  • User

    non so se ho fatto bene,ma io ho risolto mettendo "eval" che mi ha convertito la stringa in comando.