• User Newbie

    compilare campo text senza pressione di un button

    Salve a tutti,
    ho fatto una piccola formula che mi calcola il margine di un prodotto:

     
    <script LANGUAGE="JavaScript" TYPE="text/javascript">
              function esegui () 
    {
              var costo = parseFloat (document.modulo.costo.value);
              var prezzo = parseFloat (document.modulo.prezzo.value);
        var perc = parseFloat (document.modulo.perc.value);
        var k = (perc + 100)
        var iva = prezzo / k
              var risultato =  parseFloat((prezzo - costo) / (k / 100)) 
        var risultato=Math.round(risultato*100)/100
        document.modulo.j.value= parseFloat(risultato); 
     }
    </SCRIPT>
    
    

    poi attraverso un form premendo il tasto calcola ottengo regolarmente il risultato:

    [html]<form name="modulo" method="get">
    <table width="100%" border="0" cellspacing="0" cellpadding="0" class="tdGrigioChiaro">
    <tr>
    <td width="17%">Costo</td>
    <td> <input type ="text" size="8" name ="costo" value="<? print "$a8" ; ?>" class="modGiallo" /></td>
    <td> </td>
    <td> </td>
    </tr>
    <tr>
    <td>prezzo</td>
    <td><input type ="text" size="8" name ="prezzo" value="<? print "$a10" ; ?>" class="modGiallo" /></td>
    <td> </td>
    <td> </td>
    </tr>
    <tr>
    <td>Percentuale</td>
    <td><input type ="text" size="8" name ="perc" value="<? print "$a9" ; ?>" class="modGiallo" /></td>
    <td> </td>
    <td> </td>
    </tr>
    <tr>
    <td>Margine</td>
    <td width="9%"><input type ="text" size="8" name = "j" readonly="readonly" class="modRosso" /> </td>
    <td width="37%"><input type="button" value="Calcola" onclick="esegui()" class="btGrigioScuro" /></td>
    <td width="37%"> </td>
    </tr>
    </table>
    </form>[/html]

    Ciò che dovrei riuscire a fare è che scrivendo il prezzo, la percentuale e il costo nei rispettivi campi di testo dovrebbe uscire il risultato del margine automaticamnte, eliminando quindi il button CALCOLA.

    Spero che qualcuno possa darmi una mano...
    Grazie 🙂


  • Super User

    Ciao 🙂

    Puoi farlo in diversi modi congeniali a seconda della situazione.

    1. Con un refresh, cioè un timer che ricalcola i campi ogni tot.

    2. con l'evento onchange inserito sui campi che modifichi
      *onchange="esegui()"


  • User Newbie

    Proverò con il secondo metodo... grazie. 🙂