Ciao, utilizzo questa funzione per sommare dei campi in un form:
Che poi richiamo così: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(); }
Ma il campo Tot_Quantita si aggiorna soltanto quando passo sul campo con il tasto tabulatore, come faccio a farlo aggiornare in tempo reale?codice:<input type="text" name="Tot_Quantita" onkeyup="deferUpdate_quant();" readonly>
Gracias!

Rispondi quotando