Questo funziona, cerano diversi errori tipo: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>
- 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
![]()