天天看点

《JavaScript学习笔记》:只能输入数字的文本框《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<||oEvent.keyCode>)
            {
                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<||oEvent.keyCode>)&& oEvent.keyCode!=&&oEvent.keyCode!=)
            {
                return false;//阻止输入
            }   


        };

    };
    </script>
           

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

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

继续阅读