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

    javascript per sommare i calcoli da un form

    Premesso che questo script funziona perfettamente ed è affidabile,
    cè il modo di ridurlo un po?

    codice:
    function Somma() { // ok
    
    var elementi=document.form1.modulo1;
    var elementi2=document.form1.modulo2;
    
    
    var valore=0;
     for (i=0; i<elementi.length; i++) {
      if (elementi[i].type=="checkbox" && elementi[i].checked) valore+=parseFloat(elementi[i].value);
     }
     
     if (i==0) { // funzione nel caso ci sia solo una fattura nell'elenco
     	if (elementi.type=="checkbox" && elementi.checked) valore+=parseFloat(elementi.value);
     } 
     
      for (i=0; i<elementi2.length; i++) {
      if (elementi2[i].type=="checkbox" && elementi2[i].checked) valore+=parseFloat(elementi2[i].value);
     }
     
     if (i==0) { // funzione nel caso ci sia solo una fattura nell'elenco
     	if (elementi2.type=="checkbox" && elementi2.checked) valore+=parseFloat(elementi2.value);
     } 
    document.form1.totalone.value=Math.round(100*valore)/100
    ;
    }

  2. #2
    in pratica ho un form con numerosi checkbox S/N che hanno valore numerico.
    un altro campo modulo read only, deve mostrare la somma che il javascript deve calcolare.

  3. #3
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    non capisco cosa ti servono i blocchi

    if (i==0)....

    e cosa sono modulo1 e modulo2??

    Puoi postare la pagina con le checkbox comprese??
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  4. #4
    servivavo ad un altro script, che ho modificato per il mio scopo.

    comunque li ho tolti come mi hai detto tu, e in effetti lo script funziona lo stesso:

    codice:
    function Somma() { // ok
    
    var elementi=document.form2.modulo_1;
    var elementi2=document.form2.modulo_2;
    
    
    var valore=0;
     for (i=0; i<elementi.length; i++) {
      if (elementi[i].type=="checkbox" && elementi[i].checked) valore+=parseFloat(elementi[i].value);
     }
     
     	if (elementi.type=="checkbox" && elementi.checked) valore+=parseFloat(elementi.value);
     
      for (i=0; i<elementi2.length; i++) {
      if (elementi2[i].type=="checkbox" && elementi2[i].checked) valore+=parseFloat(elementi2[i].value);
     }
     
     	if (elementi2.type=="checkbox" && elementi2.checked) valore+=parseFloat(elementi2.value);
    
     
    document.form2.totalone.value=Math.round(100*valore)/100
    ;
    }
    questi sono i 2 moduli della form:

    codice:
    <td class=""><input name="modulo_1" type="checkbox" onClick="Somma();" id="modulo_1" value="1" >1 </td>
    <td class=""><input name="modulo_2" type="checkbox" onClick="Somma();" id="modulo_2" value="8" >1 </td>

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 © 2024 vBulletin Solutions, Inc. All rights reserved.