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