I have scripts that can format a HTML input value as a numeric format or money format.. Hope its useful
-
function XFormat(arrayCtl)
-
{
-
this.arrCtl = arrayCtl;
-
if (typeof XFormat._initialized == 'undefined')
-
{
-
XFormat.prototype.setKeyPress = function(){return 0;};
-
XFormat.prototype.setFocus = function(){this.select();};
-
XFormat.prototype.setBlur = function(){return 0;};
-
XFormat.prototype.setFormat = function (){return 0;};
-
-
XFormat._initialized = true;
-
}
-
}
-
-
function XFormatNumber(arrayCtl)
-
{
-
XFormat.call(this,arrayCtl);
-
if (typeof XFormatNumber._initialized == 'undefined')
-
{
-
XFormatNumber.prototype.setKeyPress = function()
-
{
-
//mengizinkan karakter '-'(minus),'0-9'(numerik)
-
if(event.keyCode==45)
-
return true;
-
else if(event.keyCode>=48 && event.keyCode<=57)
-
return true;
-
else
-
return false;
-
};
-
-
XFormatNumber.prototype.setBlur = function()
-
{
-
if(this.value=='' || isNaN(this.value))
-
this.value = 0;
-
};
-
-
XFormatNumber.prototype.setFormat = function ()
-
{
-
if(this.arrCtl.length>0)
-
{
-
for(var i=0;i<this.arrCtl.length;i++)
-
{
-
this.arrCtl[i].style.textAlign='right';
-
this.arrCtl[i].onkeypress = this.setKeyPress;
-
this.arrCtl[i].onfocus = this.setFocus ;
-
this.arrCtl[i].onblur= this.setBlur;
-
}
-
}
-
};
-
-
XFormatNumber._initialized = true;
-
}
-
}
-
XFormatNumber.prototype = new XFormat();
-
-
function XFormatMoney(arrayCtl)
-
{
-
XFormatNumber.call(this,arrayCtl);
-
if (typeof XFormatMoney._initialized == 'undefined')
-
{
-
XFormatNumber.prototype.setKeyPress = function()
-
{
-
//mengizinkan karakter '-'(minus),'.'(separator desimal),'0-9'(numerik)
-
if(event.keyCode >=45 && event.keyCode<=46)
-
return true;
-
else if(event.keyCode>=48 && event.keyCode<=57)
-
return true;
-
else
-
return false;
-
};
-
-
XFormatMoney.prototype.setFocus = this.getOriginalValue;
-
-
XFormatMoney.prototype.setBlur = function()
-
{
-
var nStr = this.value+'';
-
var rgx = /(\d+)(\d{3})/;
-
var x;
-
if(this.value=='' || isNaN(this.value))
-
{this.value = '0.00';}
-
else
-
{
-
x = nStr.split('.');
-
var x1 = x[0];
-
var x2 = x.length > 1 ? '.' + x[1] : '.00';
-
while (rgx.test(x1))
-
{
-
x1 = x1.replace(rgx, '$1' + ',' + '$2');
-
}
-
if(x.length > 1 && x[1].length >2)
-
x2 = '.'+x[1].substring(0,2);
-
this.value = x1 + x2;
-
}
-
};
-
-
XFormatMoney._initialized = true;
-
}
-
}
-
XFormatMoney.prototype = new XFormatNumber();
-
XFormatMoney.prototype.getOriginalValue = function()
-
{
-
var originalValue=0;
-
var re = /,/;
-
if(this.value!='')
-
{
-
originalValue=this.value.replace(re,'');
-
if(parseFloat(originalValue).length != originalValue)
-
originalValue = parseFloat(originalValue);
-
}
-
this.value = originalValue;
-
this.select();
-
}
-
and this is how to use that functions
-
txtMoney1 = document.getElementById('txtMoney1');
-
txtMoney2 = document.getElementById('txtMoney2');
-
txtNumber1 = document.getElementById('txtNumber1');
-
txtNumber2 = document.getElementById('txtNumber2');
-
-
oXFormatNumber = new XFormatNumber([txtNumber1,txtNumber2]);
-
oXFormatNumber.setFormat();
-
oXFormatMoney =new XFormatMoney([txtMoney1,txtMoney2]);
-
oXFormatMoney.setFormat();
-
-