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