Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di viki1967
    Registrato dal
    Feb 2003
    Messaggi
    1,757

    Controllo del punto su campo form

    Buon pomeriggio al forum...

    vorrei sapere come posso mettere un controllo su un valore che viene 'visualizzato' usando la 'virgola' come separatore decimale e che invece va scritto con separatore decimale 'punto'...

    mi spiego meglio con un esempio:

    Situazione A
    campo1 = 12,45
    percentuale = 50
    prezzo di vendita = 6 (sbagliato !!!)

    Situazione B
    campo del form = 12.45
    percentuale = 50
    prezzo di vendita = 6.225 (esatto !!!)

    ho inserito questa funzione per controllare che sia il punto a separare la cifra nel 'campo1':

    onblur="this.value=this.value.replace(/,/g,'.');

    ma mi sono accorto che se scrivo direttamente nel campo 'percentuale' il 'campo1' rimane visualizzato con la virgola e mi succede quanto detto nella situazione A; sono costretto a portarmi all'interno del 'campo1' e poi spostarmi con il tasto tab sui campi seguenti a quel punto si verifica la situazione B...

    come posso risolvere? grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Fai il replace nello script (e lascia scritto con la virgola nel campo)
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it L'avatar di viki1967
    Registrato dal
    Feb 2003
    Messaggi
    1,757
    replace nello script ??? utilizzo questo:

    codice:
    <script language="javascript">
    <!-- 
    function trasforma(f)
    {  
    f = document[f];  
    q = parseFloat("0" + f.prezzo1.value);  
    s = parseFloat("0" + f.sconto1.value);   
    f.finale1.value = Math.round(q * (100 - s)) / 100;
    } 
    //-->
    </script>

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Fai queste modifiche e togli il replace dall'onblur
    codice:
    function trasforma(f)
    {  
    f = document[f];                 // questa non e` corretta per tutti i browser
    q = parseFloat("0" + f.prezzo1.value.replace(/\,/, "."));  
    s = parseFloat("0" + f.sconto1.value);                   // se serve anche qui  
    f.finale1.value = Math.round(q * (100 - s)) / 100;
    }
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Utente di HTML.it L'avatar di viki1967
    Registrato dal
    Feb 2003
    Messaggi
    1,757
    innanzitutto grazie per la risposta e le utili indicazioni, nel frattempo stavo provando così:

    codice:
    <script language="javascript">
    <!-- 
    function trasforma(f)
    {  
    f = document[f];  
    
    f.prezzo1.value = f.prezzo1.value.replace(",", ".");
    q = parseFloat("0" + f.prezzo1.value);  
    
    f.sconto1.value = f.sconto1.value.replace(",", ".");
    s = parseFloat("0" + f.sconto1.value);  
     
    f.finale1.value = Math.round(q * (100 - s)) / 100;
    } 
    //-->
    </script>
    e sembra funzionare; quali le differenze con il tuo code?
    perchè?
    codice:
    f = document[f];   // questa non e` corretta per tutti i browser
    quale sarebbe quella giusta?

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    > quali le differenze con il tuo code?
    Tu cambi la virgola nel campo e poi torni a leggerlo, io lascio il campo con la virgola e lo cambio nella lettura (solo nella variabile virtuale JS che legge il campo)


    > quale sarebbe quella giusta?
    Dipende da come viene chiamata la funzione

    Se la chiami con
    trasforma(this) oppure trasforma(this.form)
    non serve (e` meglio toglierlo)

    Se la chiami con
    trasforma('NOMEFORM')
    va sostituita con
    f=document.forms[f]; oppure f=document.getElementById(f);
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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 © 2026 vBulletin Solutions, Inc. All rights reserved.