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