《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中隻能輸入數字的文本框的實作。
隻能輸入數字,我們還可以使用正規表達式來實作。