Buon giorno uso il seguente script per formattare con le migliaia e virgola, un numero inserito dall'utente nel campo di una form.
Funziona ma il problema è che il campo non è obbligatorio e con questo script , quando l'utente non inserisce nulla e passa sopra il campo , viene inserito in automatico:,00.
Come posso modificare affinche passando sopra il campo e non inserendo alcun valore il campo rimanga vuoto ?
<input maxlength='11' type='text' size='13' class='forms' onKeyUp=this.value=Formatta_num(this.value,2,',',f alse); onBlur=this.value=Formatta_num(this.value,2,',',tr ue); name='O1' value="">
<SCRIPT LANGUAGE=javascript>
<!--
function Pulisci(val) {
s_val = new String(val);
RE = /[^\d|\.,]/gi
s_val = s_val.replace(RE,"");
RE = /\./gi;
s_val = s_val.replace(RE,"");
s_val = s_val.replace("\,","\.");
return s_val;
}
function Formatta_num(val,dec,sep,cmp){
s_val = Pulisci(val);
a_val = s_val.split(".");
intero=a_val[0];
l_val = intero.length;
var i = 3;
while (l_val - 3 > 0){
var l_val1 = intero.length;
var s1 = intero.slice( l_val1 - i , l_val1 );
var s2 = intero.slice(0 , l_val1 - i );
intero = s2+"."+s1;
i = i +4;
l_val = l_val - 3;
}
if (cmp) {
if(a_val.length>1) {
s1 = String(a_val[1])
while (s1.length<dec) {
s1 = s1+"0";
}
} else {
s1 = "00"
}
intero = intero + sep + s1.substr(0,dec);
} else {
if(a_val.length>1) {
s1 = String(a_val[1])
if (s1.length>dec) {
s1 = s1.substr(0,dec-1)+s1.substr(dec,1)
}
intero = intero + sep + s1;
}
}
return (intero);
}
//-->
</SCRIPT>