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

    Problema con una somma dinamica

    Buon odioso lunedė a tutti,
    Vi premetto che oltre ad essere raffreddato la mia mente e' poco lucida in questo momento, vi posto il codice e il problema, sperando in un'anima pia che vede subuto l'errore:

    questa e' la funzione incriminata:

    function calcolaCompetenze(idperito) { //v2.0

    var nomecampo, totale
    var ciao
    var valore

    var numPratiche = document.getElementById('numPratiche_'+idperito).v alue;

    totale = 0;
    for (j=1; j<numPratiche; j++) {
    //alert(document.getElementById('nome_'+idperito+'_' +j).value)
    nomecampo = document.getElementById('nome_'+idperito+'_'+j).va lue;
    document.getElementById(nomecampo).value = document.getElementById(nomecampo).value.replace(" ,",".")
    valore = document.getElementById(nomecampo).value
    //valore = valore.replace(",", ".")
    if (parseFloat(valore) > 0) {
    totale += parseFloat(valore);
    }
    }
    document.forms['dati'].elements['tot_com_'+idperito].value = totale

    }

    in un ciclo per ogni riga di un determinato record:

    <tr>
    <td colspan="2" class="testonero">Numero pratiche: <%=cont-1%></td>
    <td width="17%"></td>
    <td width="13%"></td>
    <td width="10%"></td>
    <td width="6%" class="titolorosso"><div align="right">€ <%if totale > 0 then response.write formatnumber(totale,2)%></div></td>
    <td class="titolorosso"><div align="right">
    <input name="tot_com_<%= oElenco("idPerito") %>" type="text" class="boxtestorosso" style="text-align: right" size="6">
    <input name="numPratiche_<%= oElenco("idPerito") %>" id="numPratiche_<%= oElenco("idPerito") %>" type="hidden" value="<%= cont %>">
    </div></td>
    </tr>
    <script language="JavaScript">calcolaCompetenze(<%= oElenco("idPerito") %>);</script>

    ora premetto la mia totale ignoranza per il javascript se non per alcune cose basilari, vi prego di aiutarmi in due punti:

    a) capire xche' i totali fanno casini quando metto un valore non intero con dei decimali;
    b) come posso fare per far inserire come input all'utente un valore in questo formato 9.999,99 e non 9999.99 come in questo caso.

    vi ringrazio anticipatamente
    Maurizio,

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    prova a eliminare i punti prima del parseFloat
    stringa = stringa.replace(/[.]/g, "")

  3. #3
    lol dove? dimmi la stringa da levare e quella da mettere .. mica ho capito :|

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    forse questa
    document.getElementById(nomecampo).value = document.getElementById(nomecampo).value.replace(/[.]/g, "").replace(",", ".");

  5. #5
    ok ascolta ho cambiato la cosa e sembrerebbe funzionare, nelle varie combinazioni di passaggi pero' mi da i totali tipo 50,299999 e' possibile come in asp formattare a solo 2 cifre decimali il totale ?

  6. #6
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    non te lo dō per certo
    var d = 50.299999;
    var s = parseInt(d*100) / 100;

  7. #7
    ascolta c'e' un problema, se io metot nel campo il valore 20,20 lui me lo trasforma in 20.20 .. e mi calcola la somma, se pero' modifico un'altro campo, lui mi trasforma da 20.20 a 2020 ..
    te calcola che ogni votla viene ciclato tutto il record di valori.
    come ovvio a questo problema ?

  8. #8
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837

    asdasda12.0

    correggi il formato quando scrivi nel campo
    <input type="text" onchange="this.value = this.value.replace(/[.]/g, '').replace(',', '.')"/>

  9. #9
    <input name="arrValori" id="arrValore_<%= oSinistri("idSinistro") %>" type="text" class="boxtestoblu" style="text-align: right" size="6" maxlength="8" value="<% if oSinistri("competenze") > 0 then response.write formatnumber(oSinistri("competenze"),,,0) else response.write "0"%>" onBlur="calcolaCompetenze(<%= oElenco("idPerito") %>)" onchange="this.value = this.value.replace(/[.]/g, '').replace(',', '.')"/>

    con l'aggiunta di questa riga mi leva sia il punto che la virgola mi mette tutto intero.
    help

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.