TextBox 仅仅能输入数字,其它任意字符都不能输入

 var posCharCode=96;//char ',to keep cursor pos

function LimitNumberInput(obj)   //用法 οnkeydοwn="return LimitNumberInput(this);" //this指当前控件
    var ret=false;
    //number format
    var TextFormat=obj.TextFormat;
    //the max length of the value int part
    var MaxIntPart=Math.abs(parseInt(obj.MaxIntPart));
   
    var TextAllowedNull=obj.TextAllowedNull;
    var AlertInputFormatMessage=obj.AlertInputFormatMessage;
    var AlertInputNotNullMessage=obj.AlertInputNotNullMessage;
    switch(TextFormat)
    {
        case "Int":
            if (event.keyCode == 189 || event.keyCode == 109)
            {
                ret=false;//-or -in Num tray
                AddNumberInputCharLeft(obj,"-");
            }   
            break;
        case "IntPositive":
//            alert("IntPositive");
            break;
        case "IntNegative":
            if (event.keyCode == 189 || event.keyCode == 109)
            {
                ret=false;//-or -in Num tray
                AddNumberInputCharLeft(obj,"-");
            }   
            break;
        case "Float":
            if (event.keyCode == 190 || event.keyCode == 110)
            {
                ret=IsOnlyOneNumberInputChar(obj,".");
            }   
            if (event.keyCode == 189 || event.keyCode == 109)
            {
                ret=false;//-or -in Num tray
                AddNumberInputCharLeft(obj,"-");
            }   
            break;
        case "FloatPositive":
            if (event.keyCode == 190 || event.keyCode == 110)
            {
                ret=IsOnlyOneNumberInputChar(obj,".");
            }   
            break;
        case "FloatNegative":
            if (event.keyCode == 190 || event.keyCode == 110)
            {
                ret=IsOnlyOneNumberInputChar(obj,".");
            }   
            if (event.keyCode == 189 || event.keyCode == 109)
            {
                ret=false;//-or -in Num tray
                AddNumberInputCharLeft(obj,"-");
            }   
            break;
        case "Currency":
            if (event.keyCode == 190 || event.keyCode == 110)
            {
                ret=IsOnlyOneNumberInputChar(obj,".");
            }   
            if (event.keyCode == 189 || event.keyCode == 109)
            {
                ret=false;//-or -in Num tray
                AddNumberInputCharLeft(obj,"-");
            }   
            break;
        case "CurrencyPositive":
            if (event.keyCode == 190 || event.keyCode == 110)
            {
                ret=IsOnlyOneNumberInputChar(obj,".");
            }   
            break;
        case "CurrencyNegative":
            if (event.keyCode == 190 || event.keyCode == 110)
            {
                ret=IsOnlyOneNumberInputChar(obj,".");
            }   
            if (event.keyCode == 189 || event.keyCode == 109)
            {
                ret=false;//-or -in Num tray
                AddNumberInputCharLeft(obj,"-");
            }   
            break;
   
    }
    if (event.keyCode >= 48 && event.keyCode <= 57) 
    {
        InputNumberChar(obj,event.keyCode);
        ret=false; //0-9
    }
    if (event.keyCode == 9)       
        ret=true; //Tab
    if (event.keyCode == 8)
    {
        DeleteRange(obj,true);      
        ret=false; //BackSpace
    }   
    if (event.keyCode == 46)      
    {
        DeleteRange(obj,false);      
        ret=false; //BackSpace
    }   
    if (event.keyCode >= 96 && event.keyCode <= 105)
    {
        InputNumberChar(obj,event.keyCode-48);
        ret=false; //0-9
    }
 
    //Enter or Enter in Num tray
    if (event.keyCode == 13 || event.keyCode == 108)
        ret=true;
    //left arrow or right arrow   
    if (event.keyCode == 37 || event.keyCode == 39)
        ret=true;
    if(event.keyCode==188)
    {
        ret=false;
        InsertComma(obj);       
    }
    //judge the input value more than max value
    var re=/,/g;
    var objValue=Math.abs(parseFloat(obj.value.replace(re,"")));

    if(TextFormat=="SamallInt" || TextFormat=="SmallIntPositive")
    {
        if(objValue > 32767||objValue< (-32768))
        {
            DeleteRange(obj,true);
            ret=false;
        }
    }
    else
    {
        if(TextFormat=="Int" || TextFormat=="IntPositive")
        {
            if(objValue>2147483647||objValue< (-2147483648))
            {
                DeleteRange(obj,true);
                ret=false;
            }
        }
        else
        {
            var MaxValue=Math.pow(10,MaxIntPart);
            if(objValue>=MaxValue||objValue<=(-MaxValue))
            {
                DeleteRange(obj,true);
                ret=false;
            }
        }
    }
    return ret;
}  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值