《JavaScript学习笔记》:只能输入数字的文本框

《JavaScript学习笔记》:只能输入数字的文本框

这主要涉及到一个键盘事件(onkeydown)和一个键码值的范围。

由于数字0~9所对应的键码为48~57,因此,我们只需要将48~57范围之外的键阻止掉就可以了。

假设我们有一个文本框,id为txt1,则如下的代码就实现了只允许数字输入。

    <script>
    window.onload=function()
    {
        var oTxt = document.getElementById('txt1');
        oTxt.value='';
        oTxt.onkeydown=function(ev)
        {
            var oEvent = ev||event;
            //alert(oEvent.keyCode);
            //除了数字,全部给阻止了,也包括删除键BackSpace
            if(oEvent.keyCode<48||oEvent.keyCode>57)
            {
                return false;//阻止输入
            }       

        };

    };
    </script>

但是,上面的代码有一点点bug,在文本输入框,用户会输错肯定是常用的是,我们不能不允许它按回退键删除,是吧,因此上面的程序我们还需要修正。

由于回退键的keycode=8.(如果不知道键码,可使用alert(oEvent.keyCode)来获取)。

一般我们的回车键enter用来给用户提交它所输入的信息,因此我们也需要保留出来,即允许用户输入回车键。

因此,代码如下:

    <script>
    window.onload=function()
    {
        var oTxt = document.getElementById('txt1');
        oTxt.value='';
        oTxt.onkeydown=function(ev)
        {
            var oEvent = ev||event;
            //alert(oEvent.keyCode);
            /*
            由于对于输入框,删除键BK(keyCode为13)我们是需要的,回车键(keyCode为13)我们也是需要的,因此我们不能阻止掉
            */
            if((oEvent.keyCode<48||oEvent.keyCode>57)&& oEvent.keyCode!=8&&oEvent.keyCode!=13)
            {
                return false;//阻止输入
            }   


        };

    };
    </script>

以上,就是关于js中只能输入数字的文本框的实现。

只能输入数字,我们还可以使用正则表达式来实现。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值