数字文本框格式

我有可以将HTML输入值格式化为数字格式或货币格式的脚本。希望它有用


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();
} 
这就是如何使用该功能

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();  

From: https://bytes.com/topic/javascript/insights/828720-numeric-text-box-format

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值