Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150

    modifica punto migliaia negli importi

    Ciao a tutti,
    sono di nuovo qua con questo problema dell'importo con i punti separatori delle migliaia...

    Spiego brevemente ora qual'è il problema, con un semplice esempio

    Nel campo IMPO_DETT_NOTE01 utilizzo queste funzioni
    codice:
    <input type="text" maxlength="12" name="IMPO_DETT_NOTE01" class="campinull" onKeyUp="this.value=Formatta_num(this.value,2,',',false);" onBlur="this.value=Formatta_num(this.value,2,',',true);" onchange="javascript:controllonull(document.datiform.IMPO_DETT_NOTE01); controlloimporti(document.datiform.IMPO_DETT_NOTE01.value, document.datiform.IMPO_MENS_VISU01.value); calcolototali(document.datiform.IVAA.value,document.datiform.IMPO_DETT_NOTE01.value, document.datiform.IMPO_DETT_NOTE02.value, document.datiform.IMPO_DETT_NOTE03.value,document.datiform.IMPO_DETT_NOTE04.value,document.datiform.IMPO_DETT_NOTE05.value)" size="16"  class="campinotnull">
    Dove
    1. onKeyUp="this.value=Formatta_num(this.value,2,',', false);" OK
    2. onBlur="this.value=Formatta_num(this.value,2,',',t rue);" OK

    (considerate che le utilizzo anche in altri casi per archiviare dati sul db e tutto va a meraviglia.

    3. tutte le altre funzioni, prima implementate senza la gestione dei punti separatori delle migliaia, non mi funzionano più.

    Ve le posto alla fine, anche se credo che il problema di fondo sia riconducibile a queste 3 linee di codice, dove finora facevo

    codice:
    	camponewconpunto = new String(camponew);
    	camponewconpunto = camponewconpunto.replace(",",".");
    mentre ora

    codice:
    	camponewconpunto = new String(camponew);
    	camponewconpunto = camponewconpunto.replace("."," ");
    	camponewconpunto = camponewconpunto.replace(",",".");
    Dove però la 2^ riga non ne vuole sapere di funzionare
    Ho provato anche così
    codice:
    camponewconpunto = camponewconpunto.replace(".","");
    Vi posto le 2 funzioni che utilizzo (nella versione attuale), sperando che qualcuno mi possa dare una mano a farle funzionare di nuovo...
    controlloimporti
    codice:
    function controlloimporti(camponew,campoold) 
    {
    	camponewconpunto = new String(camponew);
    	camponewconpunto = camponewconpunto.replace("."," ");
    	camponewconpunto = camponewconpunto.replace(",",".");
    	
    	CheckNumNew = parseFloat(camponewconpunto);
    	
    	if(isNaN(CheckNumNew))
    	{
       		alert("Attenzione !!! Il valore del campo Importo deve essere un numero");
           camponew.focus();
           return false;
    	}
    
      	if (parseFloat(camponewconpunto) > parseFloat(campoold))
       {
       		alert("Attenzione !!! \n Il valore dell'Importo del servizio per la nota di credito deve essere minore o uguale al valore dell'importo definito per la Fattura");
           camponew.focus();
           return false;
    	}
          
       return true;
    }
    calcolototali
    codice:
    function calcolototali(iva, impo1,impo2,impo3,impo4,impo5)
    {
    	impo1conpunto = new String(impo1);
    	impo1conpunto= impo1conpunto.replace(",",".");
    
    	impo2conpunto = new String(impo2);
    	impo2conpunto= impo2conpunto.replace(",",".");
    
    	impo3conpunto = new String(impo3);
    	impo3conpunto= impo3conpunto.replace(",",".");
    	
        impo4conpunto = new String(impo4);
    	impo4conpunto= impo4conpunto.replace(",",".");
    
    	impo5conpunto = new String(impo5);
    	impo5conpunto= impo5conpunto.replace(",",".");
    
    	document.datiform.TOTA_IMPO.value = Number(impo1conpunto)+Number(impo2conpunto)+Number(impo3conpunto)+Number(impo4conpunto)+Number(impo5conpunto);
    	
    	document.datiform.TOTA_NOTA_CRED.value = Number(document.datiform.TOTA_IMPO.value) + (Number(document.datiform.TOTA_IMPO.value) * iva) / 100;
    	document.datiform.TOTA_NOTA_CRED.value = (Math.round(document.datiform.TOTA_NOTA_CRED.value * (100)))/(100);
    	document.datiform.TOTA_NOTA_CRED.value = document.datiform.TOTA_NOTA_CRED.value.replace(".",",");
    	
        document.datiform.TOTA_IMPO.value = document.datiform.TOTA_IMPO.value.replace(".",",");
    
    	
    	return true;
    }

    Grazie in anticipo


  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150
    Ho provato a mettere una alert in una delle due funzioni... e ho scoperto che non le richiama, quindi l'onchange in questo caso non funziona VVoVe: VVoVe:

    Dove sto sbagliando?

    E' possibile che onKeyUp e onBlur annullano la chiamata "onchange"?

    Chiaramente ho riprovato senza la modifica dell'inserimento dell'onKeyUp e onBlur e funziona di nuovo...

    QUalche suggeriemnto!?

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    1,150

    Eliminata l'onchange...

    A forza di tentativi ho deciso di eliminare l'on-change e "spostare" le funzioni in essa richiamate nelle onBlur (nella onKeyUp non funzionavano).

    Sembra funzionare

    Però... Boh... la vedo un pò strana questa cosa... se qualcuno più esperto mi sa dare qualche dritta più precisa su quello che sto combinando, mi farebbe un grosso piacere

    questo è il codice modificato
    codice:
    <input type="text" maxlength="12" name="IMPO_DETT_NOTE01" class="campinullimpo" onKeyUp="this.value=Formatta_num(this.value,2,',',false);" onBlur="this.value=Formatta_num(this.value,2,',',true);controllonull(document.datiform.IMPO_DETT_NOTE01); controlloimporti(document.datiform.IMPO_DETT_NOTE01.value, document.datiform.TOTA_FATT.value); calcolototali(document.datiform.IVAA.value,document.datiform.IMPO_DETT_NOTE01.value, document.datiform.IMPO_DETT_NOTE02.value, document.datiform.IMPO_DETT_NOTE03.value,document.datiform.IMPO_DETT_NOTE04.value,document.datiform.IMPO_DETT_NOTE05.value);" size="16"  class="campinotnull">
    e chiaramente
    codice:
    function controlloimporti(camponew,campoold) 
    {
       //alert(camponew)
    	camponewconpunto = new String(camponew);
       camponewconpunto = camponewconpunto.replace(".","");
    	camponewconpunto = camponewconpunto.replace(",",".");
    ....

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