Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    181

    funzione per fare la media

    ciao a tutti mi serve una funziona che faccia la media dei valori contenuti in 4 campi considerando che non tutti i campi possono essere valorizzati dall'utente cioè ci sono 4 campi ma l'utente ne può inserire anche solo 2, in quel caso deve fare la media tra quei soli due valori.

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    ti faccio un esempio
    codice:
    <script language="javascript">
    function Media(){
    	var val,ff=document.NomeForm
    	var n=0
    	var tot=0
    	for(var i=1;i<=4;i++){
    		val=ff.elements['NomeText'+i].value
    		if(!isNaN(val) && val!=''){
    			n++
    			tot+=parseInt(ff.elements['NomeText'+i].value,10)
    		}
    	}
    	if(n>0)ff.NomeTextRisultato.value=(tot/n)
    	else ff.NomeTextRisultato.value=''
    }
    </script>
    <form name="NomeForm">
    <input type="text" name="NomeText1" onchange="Media()">
    <input type="text" name="NomeText2" onchange="Media()">
    <input type="text" name="NomeText3" onchange="Media()">
    <input type="text" name="NomeText4" onchange="Media()">
    <hr>
    <input type="text" name="NomeTextRisultato" readonly="true">
    </form>

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    181
    è perfetto grazie mille però non mi prende la virgola o il punto come posso fare?

  4. #4
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    sostituisci
    codice:
    tot+=parseInt(ff.elements['NomeText'+i].value,10)
    con
    codice:
    tot+=parseFloat(ff.elements['NomeText'+i].value)

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    181
    scusami ancora ho modificato lo script per adattarlo al mio form cosi
    <script language="javascript">
    function Media(){
    var val,ff=document.inserimento
    var n=0
    var tot=0
    for(var i=1;i<=4;i++){
    val=ff.elements['fito'+i].value
    if(!isNaN(val) && val!=''){
    n++
    tot+=parseFloat(ff.elements['fito'+i].value)

    }
    }
    if(n>0)ff.fitom.value=(tot/n)
    else ff.fitom.value=''
    }
    </script>
    <form name="inserimento">
    <input type="text" name="fito1" >
    <input type="text" name="fito2">
    <input type="text" name="fito3" >
    <input type="text" name="fito4" >
    <hr>
    <input type="text" name="fitom">
    <input type="button" name="Submit243" value="calcola" onclick="Media(this.form);">
    </form>
    se ora trasferisco il codice senza la parte html alla mia pagina mi da questo errore
    elements[..].value è nullo o non è un oggetto perchè?
    eppure non ho fatto altro che rinominare il form e i campi

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    181
    come non detto solo un problema di id maledetto dreamw..
    grazie a tutti per l'aiuto grazie davvero

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.