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

    Somma di campi dinamici

    Ho un form con un elenco di campi dimanici, io vorrei inserire un ulteriore campo che aggiorna il totale (progressivo) di tutti i valori inseriti nei vari TextBox; il problema è che non posso sapere a priori il numero di TextBox ... chiamati Consumo1, Consumo2 ... ConsumoX

    Esiste una soluzione?

    Grazie in anticipo


    <table border="0" align="center" cellpadding="2" cellspacing="6" width="363">


    <tr>

    <td class="testo8" height="20" bgcolor="#D3E1FA" width="145">
    <input type="text" name="Consumo1" size="11" maxlength="15" class="form">
    mc/d</td>


    </tr>

    <tr>

    <td class="testo8" height="20" bgcolor="#D3E1FA" width="145">
    <input type="text" name="Consumo2" size="11" maxlength="15" class="form">
    mc/d</td>


    </tr>

    <tr>

    <td class="testo8" height="20" bgcolor="#D3E1FA" width="145">
    <input type="text" name="Consumo3" size="11" maxlength="15" class="form">
    mc/d</td>

    </tr>

    <tr>

    <td class="testo8" height="20" bgcolor="#D3E1FA" width="145">
    <input type="text" name="Consumo4" size="11" maxlength="15" class="form">
    mc/d</td>

    </tr>

    ...
    Iceberg

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    codice:
    <script>
    function somma(obj) {
     t = 0
     e = obj.elements;
     for (i=0;i<e.lenght-1;i++) {
      if e[i].name.substr(0,7)=="Consumo") t += parseFloat(e[i].value)
     }
     obj.CampoTotale.vaue=t
    }
    </script>
    
    <input type="text" name="Consumo1" size="11" maxlength="15" class="form" onblur="somma(this.form)">
    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Grazie 1000 per l'aiuto...

    ma nel textbox che inserisco per il totale cosa devo inserire?


    Grazie ancora
    Iceberg

  4. #4
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    ... niente

    ...
    ...
    obj.CampoTotale.vaue=t
    }
    </script>

    <input type="text" name="Consumo1" size="11" maxlength="15" class="form" onblur="somma(this.form)">
    ...
    ...
    <input type="text" name="CampoTotale" size="11" maxlength="15" class="form" readonly>

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  5. #5
    Credo di aver sbagliato qualche cosa....








    <HTML>
    <HEAD>
    <TITLE>TITLE>

    <SCRIPT>

    function somma(obj) {
    t = 0
    e = obj.elements;
    for (i=0;i<e.lenght-1;i++) {
    if e[i].name.substr(0,7)=="Consumo") t += parseFloat(e[i].value)
    }
    obj.CampoTotale.value=t
    }

    </SCRIPT>




    <FORM name="form" method="post" action="Salva.asp">
    ...

    <td class="testo8" height="20" bgcolor="#D3E1FA" width="145">
    <input type="text" name="Consumo1" size="11" maxlength="15" class="form" onblur="somma(this.form)">
    </td>
    ...


    <td class="testo8" height="20" bgcolor="#D3E1FA" width="145">
    <input type="text" name="Consumo2" size="11" maxlength="15" class="form" onblur="somma(this.form)">
    </td>


    ...


    <td class="testo8" height="20" bgcolor="#D3E1FA" width="145">
    <input type="text" name="Consumo29" size="11" maxlength="15" class="form" onblur="somma(this.form)">
    </td>
    </table>






    <input type="text" name="CampoTotale" size="25" class="form" readonly>




    </FORM>




    </BODY>
    </HTML>
    Iceberg

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    1. occhio a <title>
    2. length non lenght
    3. occhio alla parentesi dell IF

    codice:
    <HTML> 
    <HEAD> 
    <TITLE></TITLE>
    
    <SCRIPT> 
    
    function somma(obj) {
    t = 0
    e = obj.elements;
    for (i=0;i<e.length-1;i++) {
    if (e[i].name.substr(0,7)=="Consumo") t += parseFloat(e[i].value)
    } 
    obj.CampoTotale.value=t 
    } 
    
    </SCRIPT>
    </head>
    <body>
    <FORM name="form" method="post" action="Salva.asp">
    <td class="testo8" height="20" bgcolor="#D3E1FA" width="145">
    <input type="text" name="Consumo1" size="11" maxlength="15" class="form" onblur="somma(this.form)"> 
    </td> 
    <td class="testo8" height="20" bgcolor="#D3E1FA" width="145"> 
    <input type="text" name="Consumo2" size="11" maxlength="15" class="form" onblur="somma(this.form)">
    </td> 
    <td class="testo8" height="20" bgcolor="#D3E1FA" width="145">
    <input type="text" name="Consumo29" size="11" maxlength="15" class="form" onblur="somma(this.form)"> 
    </td>
    </table> 
    <input type="text" name="CampoTotale" size="25" class="form" readonly> 
    </FORM> 
    </BODY>
    </HTML>

  7. #7
    Grazie 1000, ho fatto un merge con un'altra funzione e ora è tutto OK!
    Iceberg

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.