Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    69

    somma: problemi con "" e NaN

    Salve a tutti, premetto che non sono una cima in Javascript e per questo chiedo aiuto a chi ne sa più di me.
    Il mio problema è questo:
    ho un modulo ordine con 15 righe composte da quantità,prezzo, imponibile e totale
    vorrei che l'imponibile venga compilato automaticamente quando inserisco quantità e prezzo mediante la classica formula: quantità*prezzo >>> e fino a qui nessun problema;
    allo stesso modo in totale vorrei la somma di tutti gli imponibili.
    fino a qui arrancando un po' ci sono arrivato, ma non ho fatto i conti con i campi vuoti.
    Per tanto chiedo questo:
    Qualcuno è così gentile da aiutarmi a sistemare il codice in modo da:
    1) Formattare i decimali sul campo prezzo (tipo se l'utente scrive 1.5 in automatico diventa 1.50)
    2) Lasciare vuoto il campo imponibile se i campi quantità e prezzo sono vuoti (così com'è il codice se clicco su un campo prezzo o quantità, imponibile diventa NaN
    3) Calcolare il totale escludendo gli imponibili NaN o vuoti.

    Grazie in anticipo a chi è così gentile da risolvermi il problema.

    codice:

    function calcola1()
    {
    var qta1 = document.getElementById("qta1").value;
    var prezzo1 = parseFloat (document.getElementById("prezzo1").value);
    var addendo1 = eval(qta1);
    var addendo2 = eval(prezzo1);
    conto1 = addendo1 * addendo2;
    document.getElementById("imponibile1").value = conto1.toFixed(2);

    var imponibile1 =document.getElementById("imponibile1").value;
    if (imponibile1 == "" || imponibile1== undefined || isNan(imponibile1))
    {
    imponibile1=0.00;
    }
    var imponibile2 = document.getElementById("imponibile2").value;
    if (imponibile2 == "" || imponibile2== undefined || isNan(imponibile2))
    {
    imponibile2=0.00;
    }
    var imponibile3 =document.getElementById("imponibile3").value;
    if (imponibile3 == "" || imponibile3== undefined || isNan(imponibile3))
    {
    imponibile3=0.00;
    } var imponibile4 = document.getElementById("imponibile4").value;
    if (imponibile4 == "" || imponibile4== undefined || isNan(imponibile4))
    {
    imponibile4=0.00;
    } var imponibile5 = document.getElementById("imponibile5").value;
    if (imponibile5 == "" || imponibile5== undefined || isNan(imponibile5))
    {
    imponibile5=0.00;
    } var imponibile6 = document.getElementById("imponibile6").value;
    if (imponibile6 == "" || imponibile6== undefined || isNan(imponibile6))
    {
    imponibile6=0.00;
    } var imponibile7 = document.getElementById("imponibile7").value;
    if (imponibile7 == "" || imponibile7== undefined || isNan(imponibile7))
    {
    imponibile7=0.00;
    } var imponibile8 = document.getElementById("imponibile8").value;
    if (imponibile8 == "" || imponibile8== undefined || isNan(imponibile8))
    {
    imponibile8=0.00;
    } var imponibile9 = document.getElementById("imponibile9").value;
    if (imponibile9 == "" || imponibile9== undefined || isNan(imponibile9))
    {
    imponibile9=0.00;
    } var imponibile10 = document.getElementById("imponibile10").value;
    if (imponibile10 == "" || imponibile10== undefined || isNan(imponibile10))
    {
    imponibile10=0.00;
    } var imponibile11 = document.getElementById("imponibile11").value;
    if (imponibile11 == "" || imponibile11== undefined || isNan(imponibile11))
    {
    imponibile11=0.00;
    } var imponibile12 = document.getElementById("imponibile12").value;
    if (imponibile12 == "" || imponibile12== undefined || isNan(imponibile12))
    {
    imponibile12=0.00;
    } var imponibile13 = document.getElementById("imponibile13").value;
    if (imponibile13 == "" || imponibile13== undefined || isNan(imponibile13))
    {
    imponibile13=0.00;
    } var imponibile14 = document.getElementById("imponibile14").value;
    if (imponibile14 == "" || imponibile14== undefined || isNan(imponibile14))
    {
    imponibile14=0.00;
    } var imponibile15 = document.getElementById("imponibile15").value;
    if (imponibile15 == "" || imponibile15== undefined || isNan(imponibile15))
    {
    imponibile15=0.00;
    }
    var addendo1a = eval(imponibile1);
    var addendo2a = eval(imponibile2);
    var addendo3 = eval(imponibile3);
    var addendo4 = eval(imponibile4);
    var addendo5 = eval(imponibile5);
    var addendo6 = eval(imponibile6);
    var addendo7 = eval(imponibile7);
    var addendo8 = eval(imponibile8);
    var addendo9 = eval(imponibile9);
    var addendo10 = eval(imponibile10);
    var addendo11 = eval(imponibile11);
    var addendo12 = eval(imponibile12);
    var addendo13 = eval(imponibile13);
    var addendo14 = eval(imponibile14);
    var addendo15 = eval(imponibile15);


    conto = addendo1a + addendo2a + addendo3 + addendo4 + addendo5 + addendo6 + addendo7 + addendo8 + addendo9 + addendo10 + addendo11 + addendo12 + addendo13 + addendo14 + addendo15;
    document.getElementById("totalePF").value = conto.toFixed(2);
    }
    </script>

    <input name="qta1" type="text" id="qta1" style="width:40px; text-align:center" onBlur="calcola1()">

    <input name="prezzo1" type="text" id="prezzo1" style="width:80px; text-align:right" onBlur="calcola1()" onKeyUp="this.value= this.value.replace(',', '.')" ON>

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2003
    Messaggi
    69

    Dimenticavo!

    Mi sono dimenticato di specificare una cosa:

    per quanto pre-impostare i campi a 0 e 0.00 risolverebbe velocemente il problema, quando vado in stampa è proprio brutto da vedere 15 righe piene di zeri... molto molto meglio vedere il campo vuoto.
    ... a meno che mi spiagate il modo per visualizzare nascondere un campo con valore 0.00.

    Grazie ancora!

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.