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
Dovecodice:<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">
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
mentre oracodice:camponewconpunto = new String(camponew); camponewconpunto = camponewconpunto.replace(",",".");
Dove però la 2^ riga non ne vuole sapere di funzionarecodice:camponewconpunto = new String(camponew); camponewconpunto = camponewconpunto.replace("."," "); camponewconpunto = camponewconpunto.replace(",",".");
Ho provato anche così
Vi posto le 2 funzioni che utilizzo (nella versione attuale), sperando che qualcuno mi possa dare una mano a farle funzionare di nuovo...codice:camponewconpunto = camponewconpunto.replace(".","");![]()
controlloimporti
calcolototalicodice: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; }
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
![]()

Rispondi quotando
VVoVe:
