Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630

    sottrarre percentuale di sconto

    carissimi,
    cerco uno script che in tempo reale mi calcoli lo sconto.
    Ho 3 campi
    - PREZZO BASE
    - SCONTO IN PERCENTUALE DA APPLICARE
    - PREZZO SCONTATO
    Grazie
    G.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    Salve ho trovato e modificato per le mie necessità questo script, ma non riesco a ...
    codice:
    <head>
    <script language="javascript"> 
    function calcola(sc) {
      var prez_e = sc.form.PREZZO_SERVER.value;
      prez_e = prez_e.replace(/[\. ]/g, "");
      prez_e = prez_e.replace(/\,/, ".");
      var prez = parseFloat(prez_e);
      var scon = parseFloat(sc.value);
      var net = String(Math.round((prez - prez*scon/100) *100) / 100); 
      net.replace(/\./, ",");
      document.getElementById("totalescontato").value = net;
    }
    </script> 
    </head>
    
    <form method="get" action="carrello.asp" name="carrello">
    prezzo € <input type="text" name="PREZZO_SERVER" value="0">
    
    
    sconto in percentuale<input type="text" name="SCONTO" value="0" onchange="calcola(this);">
    %</p>
    
    
    prezzo con sconto € <input type="text" name="totalescontato" value="0">
    </p>
    </form>
    1) vorrei che mentre scrivo la percentuale o il prezzo base, il totale si deve comporre in temporeale

    2) il totale deve contenere anche gli zeri dopo la virgola o punti come messi per esempio nel prezzo iniziale.

    Potete aiutarmi?
    Grazie
    G.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    nessuno può aiutarmi?

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    codice:
    <head>
    <script language="javascript"> 
    function calcola(el1,el2) {
      var decimal = "";
      var prez_e = el1.value;
      prez_e = prez_e.replace(/\,/, ".");
      if(prez_e.indexOf(".") != -1){
      	decimal = prez_e.split(".");
      	decimal = parseInt(decimal[1]) > 0  ? "" : "."+decimal[1];
      }
      var prez = parseFloat(prez_e);
      var scon = parseFloat(el2.value);
      var net = String(Math.round((prez - prez*scon/100) *100) / 100);
      if(!isNaN(net)){
      	net = net.replace(/\./, ",");
      	net = net+decimal;
      	document.carrello.totalescontato.value = net;
      }
    }
    </script> 
    </head>
    <body>
    <form method="get" action="carrello.asp" name="carrello">
    prezzo <input type="text" name="PREZZO_SERVER" value="0" onkeyup="calcola(this,carrello.SCONTO)">
    
    
    sconto in percentuale<input type="text" name="SCONTO" value="0" onkeyup="calcola(carrello.PREZZO_SERVER,this)">
    %</p>
    
    
    prezzo con sconto <input type="text" name="totalescontato" value="0" >
    </p>
    </form>
    </body>

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    perfetto
    grazie 1000 vindav

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    scusatemi se ritorno al post
    ma ho notato che se il prezzo da scontare (PREZZO_SERVER) è così: 25,00 cioè a 2 cifre
    e metto qualunque percentuale ho questo risultato di esempio

    prezzo: 25,00
    percentuale sconto: 10
    totale : 22,5.00 invece di 22,50

    Come posso ovviare?
    Grazie
    G.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    2,630
    nessun aiuto?

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    C'era un errore nel codice che ti avevo scritto, fai una prova cosi:

    codice:
    function calcola(el1,el2) {
      var decimal = "";
      var prez_e = el1.value;
      prez_e = prez_e.replace(/\,/, ".");
      if(prez_e.indexOf(".") != -1){
      	decimal = prez_e.split(".");
      	decimal = decimal[1].length;
      }
      var prez = parseFloat(prez_e);
      var scon = parseFloat(el2.value);
      var net = String(Math.round((prez - prez*scon/100) *100) / 100);
      if(!isNaN(net)){
      	document.carrello.totalescontato.value = new Number(net).toFixed(decimal);
      }
    }

  9. #9

    e se volessi applicare questo script a piu campi input di una pagina?

    in una pagina con più prezzi di un carrello come posso inserire più volte questa funzione?

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    3,660
    richiama la funzione in tutti i campi interessati... l'unica cosa che forse devi cambiare è

    document.carrello.totalescontato.value = new Number(net).toFixed(decimal);

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.