JavaScript使用鍵盤輸入控制實(shí)現(xiàn)數(shù)字驗(yàn)證功能
現(xiàn)在有一個需求如下圖:

產(chǎn)品經(jīng)理說Card Number只能讓輸入數(shù)字(中間的空格是格式自加的,也是用js實(shí)現(xiàn)的),有時候我腦海中出現(xiàn)了個聲音,啥玩意,加個type=number不就行了,事實(shí)發(fā)現(xiàn)圖樣圖森破了,先不說type=number后面會有個上下標(biāo)(雖然用css可干掉),但是這個類型是支持科學(xué)輸入法的,就是小數(shù)點(diǎn)和e這樣的是可以輸入的,于是乎只能用其他的方式了,后來想用檢索到輸入了非數(shù)字就干掉,但是這樣還是能輸入,想法被打回,于是乎最終采用了鍵盤輸入控制的辦法,其實(shí)很簡單,代碼如下:
var isNumber=function(keyCode){
// 數(shù)字
if (keyCode >= 48 && keyCode <= 57) {
return true;
}
// 小數(shù)字鍵盤
if (keyCode >= 96 && keyCode <= 105) {
return true;
}
//tab Backspace, del, 左右方向鍵
if (keyCode == 9||keyCode == 8|| keyCode == 32 || keyCode == 46 || keyCode == 37 || keyCode == 39) {
return true;
}
return false
}
所謂鍵盤輸入控制就是根據(jù)鍵盤輸入的keycode來判斷輸入的是什么類型,即獲取按下的鍵盤按鍵Unicode值,鍵盤上每個按鍵對應(yīng)的keycode是固定的,網(wǎng)上有很多對照表,我這里就不貼上去了,每一次按鍵監(jiān)測到對應(yīng)的keycode然后對照是否合法,需要注意的是這里合法的不僅是數(shù)字,還有上下左右tab和空格方向鍵,不能禁用用戶的操作指令,怎么樣,看起來很簡單吧。
相關(guān)文章
JavaScript的模塊化:封裝(閉包),繼承(原型) 介紹
在復(fù)雜的邏輯下, JavaScript 需要被模塊化,模塊需要封裝起來,只留下供外界調(diào)用的接口。閉包是 JavaScript 中實(shí)現(xiàn)模塊封裝的關(guān)鍵,也是很多初學(xué)者難以理解的要點(diǎn)2013-07-07
Web 開發(fā)中Ajax的Session 超時處理方法
下面小編就為大家?guī)硪黄猈eb 開發(fā)中Ajax的Session 超時處理方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-01-01
js 禁止選擇功能實(shí)現(xiàn)代碼(兼容IE/Firefox)
有時候出于某種需要,不希望用戶可以選擇某個區(qū)域,進(jìn)行下面的操作,這里給出簡單的代碼。2010-04-04
體驗(yàn)js中splice()的強(qiáng)大(插入、刪除或替換數(shù)組的元素)
javascript splice()算是最強(qiáng)大的了,它可以用于插入、刪除或替換數(shù)組的元素。下面來一一介紹,感興趣的朋友2013-01-01
JS實(shí)現(xiàn)簡單的頂部定時關(guān)閉層效果
這篇文章主要介紹了通過JS實(shí)現(xiàn)的簡單頂部定時關(guān)閉層效果,需要的朋友可以參考下2014-06-06

