Ciao, utilizzo questa funzione per sommare dei campi in un form:

codice:
function updateSum_quant()
{
  var frmObj = document.frmEnquiry;
 
  var sum_quant = parseFloat("0" + frmObj.Quantita_1.value) +
                  parseFloat("0" + frmObj.Quantita_2.value) +
                  parseFloat("0" + frmObj.Quantita_3.value) +
                  parseFloat("0" + frmObj.Quantita_4.value) +
                  parseFloat("0" + frmObj.Quantita_5.value) +
                  parseFloat("0" + frmObj.Quantita_6.value);
 
  // Arrotonda a 2 cifre decimali e converti in stringa
  sum_quant = (Math.round(sum_quant * 100) / 100).toString();
 
  // Cerca il punto decimale, se esiste
  var n_quant = sum_quant.indexOf(".");
 
  if (n_quant < 0) sum_quant += ".00";
  else while(sum_quant.substr(n_quant).length < 3) sum_quant += "0";
 
  frmObj.Tot_Quantita.value = sum_quant;
}
 
var timerID_quant = null;
 
// flTimeout è true solo se i methods window.setTimeout() e window.clearTimeout()
// sono implementati dalla versione corrente del DOM (browser del cliente)
var flTimeout_quant = (typeof(window.setTimeout) != "undefined" &&
                 typeof(window.clearTimeout) != "undefined");
 
function deferUpdate_quant()
{
  // Se il tempo di timeout è in corso, resettalo
  if (timerID_quant != null) window.clearTimeout(timerID_quant);
 
  // Differisci 'updateSum()' di 400 millisecondi se il method 'window.setTimeout()'
  // è implementato, in caso contrario, invoca 'updateSum()' direttamente
  if (flTimeout_quant) timerID_quant = window.setTimeout("timerID_quant = null; updateSum_quant();", 400);
  else updateSum_quant();
}
Che poi richiamo così:

codice:
<input type="text" name="Tot_Quantita" onkeyup="deferUpdate_quant();" readonly>
Ma il campo Tot_Quantita si aggiorna soltanto quando passo sul campo con il tasto tabulatore, come faccio a farlo aggiornare in tempo reale?

Gracias!