Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di KLINKO
    Registrato dal
    Sep 2002
    Messaggi
    285

    controllo somma di 3 campi

    ho questo script che dovrebbe controllare che la somma di 3 campi sia uguale ad una cifra, funziona ma se inserisco decimali non quadra.

    per esempio se devo raggiungere la somma di 535.20 con 16.00 + 519.20 non acconsente a proseguire nonostante la somma dovrebbe essere uguale.

    il valore Controllo viene passato con il punto e non con la virgola cioè 535.20


    <script language="JavaScript">
    function controllo(f) {
    var somma=<%= Controllo %>;
    var sommacampi = (v1) + (v2) + (v3);
    var v1=parseInt(f.ContantiTrattenuti.value);
    var v2=parseInt(f.ContantiTrasferiti.value);
    var v3=parseInt(f.AssegniTrasferiti.value);
    if (!(somma==sommacampi)) {
    alert("I conti non tornano. controlla meglio.");
    return false;
    }
    else
    document.all.Inserisci.disabled = true;
    return true;
    }
    </script>


    potrebbe essere un errore di formattazione delle cifre?

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    parseInt() e' una funzione che restituisce valori interi, nel tuo caso devi utilizzare parseFloat()

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    parseInt() prende solo la parte intera di un numero.
    Usa parseFloat() al suo posto.

    Inoltre la somma la devi fare dopo aver letto i campi.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  4. #4
    Utente di HTML.it L'avatar di KLINKO
    Registrato dal
    Sep 2002
    Messaggi
    285
    ho fatto i cambiamenti ma continua a mandarmi il messaggio dicendomi che la somma non va,
    ho addirittura passato il valore scrivendolo direttamente nella var somma

    <script language="JavaScript">
    function controllo(f) {
    var somma=(535.20);
    var sommacampi = v1+v2+v3;
    var v1=parseFloat(f.ContantiTrattenuti.value);
    var v2=parseFloat(f.ContantiTrasferiti.value);
    var v3=parseFloat(f.AssegniTrasferiti.value);
    if (!(somma==sommacampi)) {
    alert("I conti non tornano. controlla meglio.");
    return false;
    }
    else
    document.all.Inserisci.disabled = true;
    return true;
    }
    </script>


    qualcuno lo puo provare per favore?

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    T'ho gia` detto, c'e` un errore di logica.

    aggiungi prima dell'if quest'alert di controllo:
    alert("controllo: somma="+somma+" sommacampi="+sommacampi);
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    Utente di HTML.it L'avatar di KLINKO
    Registrato dal
    Sep 2002
    Messaggi
    285
    ora funziona
    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.