天天看點

《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鍵enter用來給使用者送出它所輸入的資訊,是以我們也需要保留出來,即允許使用者輸入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)我們是需要的,Enter鍵(keyCode為13)我們也是需要的,是以我們不能阻止掉
            */
            if((oEvent.keyCode<||oEvent.keyCode>)&& oEvent.keyCode!=&&oEvent.keyCode!=)
            {
                return false;//阻止輸入
            }   


        };

    };
    </script>
           

以上,就是關于js中隻能輸入數字的文本框的實作。

隻能輸入數字,我們還可以使用正規表達式來實作。

繼續閱讀