Dovresti usare l'evento onBlur() sui vari campi, in modo che ogni volta che togli il focus da un campo, venga richiamata la funzione che fa la somma. Il problema è che se un campo vuoto ed un campo valorizzato a 0 sono due cose totalmente differenti: non puoi fare la somma di un numero più "null".
Il codice dovrà essere qualcosa di simile:
codice:
1) nell'header inserisci:
<script language="JavaScript">
<!--
function somma() {
var addendo1=document.nomeForm.campo1.value;
var addendo2=document.nomeForm.campo2.value;
if (isNaN(addendo1)) {
if (addendo1=="") {
addendo1="0";
} else {
window.alert("il valore inserito non è un numero");
document.nomeForm.campo1.focus();
}
}
if (isNaN(addendo2)) {
if (addendo2=="") {
addendo1="0";
} else {
window.alert("il valore inserito non è un numero");
document.nomeForm.campo2.focus();
}
}
document.nomeForm.campo3.value=addendo1+addendo2;
}
//-->
</script>
2) all'interno dei tag relativi a campo1 e campo2 aggiungi:
onBlur="javascript:somma();"
Secan