Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    190

    script per il calcolo automatico di una moltiplicazione

    Ciao ragazzi,
    ho una pagina con 3 textbox:
    - txtImporto
    - txtAliquota
    - txtRisultato
    è possibile calcolare automaticamente il risultato (valore di txtImporto * valore di txtAliquota) ed inserirlo in txtRisultato appena avviene la tabulazione degli importi nelle 2 prime txtbox (quindi senza bisogno di clikkare bottoni, ricaricare la pagina...)?
    Grazie fin da ora x la disponibilità

  2. #2
    fai così:

    codice:
    function funzione(f) {
     var v1=f.txtImporto.value;
     var v2=f.txtAliquota.value;
     if (v1=="" || v2=="") return;
     v1=parseInt(v1);
     v1=parseInt(v2);
     f.txtRisultato.value=v1*v2;
    }
    da avviare così:

    codice:
    <input type="text" name="txtImporto" onkeyup="funzione(this.form);" />
    <input type="text" name="txtAliquota" onkeyup="funzione(this.form);" />
    ciao

  3. #3
    <script language="javascript">
    function moltiplica(){
    var imp=document.forms[0].txtImporto.value;
    var ali=document.forms[0].txtAliquota.value;
    var ris=imp*ali;
    document.forms[0].txtRisultato.value=ris;
    }
    </script>
    Nel form inserisci questo pulsante:
    <input type="button" onclick="moltiplica()" value="Moltiplica" title="Moltiplica">

  4. #4
    Ohp! Non avevo letto la seconda parte che diceva dei pulsanti e a quanto pare sono arrivato legermente tardi par la risposta .

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    5
    Io ho modificato il vostro esempio che ho miracolosamente trovato e colgo l'occasione per ringraziarvi, non so niente sul Javascrip e ho dovuto vergognosamente copiare 8P

    Però ho un problema con la modifica che ho apportato utilizzando l'aliquota al 10% dell'iva, in quanto mi ritorna una cifra con troppi zeri, quando invece con il solito calcolo al 20 e 4% funziona correttamente. Potete aiutarmi a risolverlo?

    Grazie, copio qua ciò che ho combinato.

    ----------------------------------------------
    <script language="javascript">
    function moltiplica(){
    var imp=document.forms[0].prezzo_acq.value;
    var ali=document.forms[0].iva.value;
    var ris=imp*ali;
    document.forms[0].acq_ivato.value=ris;
    }
    </script>
    ----------------------------------------------
    <input name="prezzo_acq" type="text" id="prezzo_acq" onKeyUp="moltiplica()" tabindex="8" size="12" maxlength="12">

    <select name="iva" id="iva" onChange="moltiplica()">
    <option value="1.2">Iva 20%</option>
    <option value="1.1">Iva 10%</option>
    <option value="1.04">Iva 4%</option>
    </select>

    <input name="acq_ivato" type="text" id="acq_ivato" tabindex="8" size="12" maxlength="12" readonly="">


    N.b nell'aliquota al 10% ho provato a immettere anche il valore di 1.10 ma chiarmanete non è cambiato niente,

  6. #6
    non vuoi i decimali?
    fai così:

    codice:
    var ris=parseInt(imp*ali);
    spero di aver ben capito...

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    5
    Così è già molto meglio e ti ringrazio, però trattandosi di valute i due numeri dopo un punto ci starebbero bene, come posso fare?

    Grazie

  8. #8
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    5
    Ok leggendo vari altri messaggi in questo forum ho trovato e compreso la soluzione anche per il problema dei decimali..

    --------------------------------------------------------------
    <script language="javascript">
    function moltiplica(){
    precisione=2
    var imp=document.forms[0].prezzo_acq.value;
    var ali=document.forms[0].iva.value;
    var ric=document.forms[0].ricarico.value;
    var vnd=imp*ric;
    var ris=imp*ali;
    var tot=vnd*ali;
    var aci=Math.round(ris*Math.pow(10, precisione))/Math.pow(10, precisione);
    var vni=Math.round(vnd*Math.pow(10, precisione))/Math.pow(10, precisione);
    var toi=Math.round(tot*Math.pow(10, precisione))/Math.pow(10, precisione);
    document.forms[0].prezzo_vnd.value=vni
    document.forms[0].acq_ivato.value=aci
    document.forms[0].vnd_ivato.value=toi
    }
    </script>
    ------------------------------------------------------------

    Però sorge un'altro grandissimo problema, ovvero non capisco per quale motivo nel database MySql i valori dopo il punto non vengono memorizzati se immessi tramite lo script in java... dove sbaglio ?

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2004
    Messaggi
    5
    Portate pazienza sono io un cotennone 8P
    L'errore si trovava nello script PHP che inviava i dati come numero intero e non doppio 8)

    Tutto apposto ora
    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 © 2025 vBulletin Solutions, Inc. All rights reserved.