Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Funzione per somma campi di form

    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!

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Secondo me devi fare così:
    codice:
    <input type="text" name="Quantita_1" onkeyup="deferUpdate_quant();">
    <input type="text" name="Quantita_2" onkeyup="deferUpdate_quant();">
    Inserire la funzione 'deferUpdate_quant()' nei campi quantità e toglierla dal campo totale.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    E' vero... sei un grande... grazie!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.