JS實現判斷input輸入是否爲數字

先了解下各事件的區別 javascript

  • keydown:在控件有焦點的狀況下按下鍵時發生
  • keypress:在控件有焦點的狀況下按下鍵時發生
  • keyup:   在控件有焦點的狀況下釋放鍵時發生

意義 html

  1. keypress主要用來接收字母、數字等ANSI字符。keydown 和 keyup 事件過程一般能夠捕獲鍵盤除了PrScrn全部按鍵 (這裏不討論特殊鍵盤的特殊鍵)
  2. keypress 只能捕獲單個字符,keydown 和 keyup 能夠捕獲組合鍵
  3. keypress 不顯示鍵盤的物理狀態(SHIFT鍵),而只是傳遞一個字符。keypress 將每一個字符的大、小寫形式做爲不一樣的鍵代碼解釋,即做爲兩種不一樣的字符。
  4. keydown 和 keyup 不能判斷鍵值字母的大小,用兩種參數解釋每一個字符的大寫形式和小寫形式:keycode — 顯示物理的鍵(將 A 和 a 做爲同一個鍵返回)和 shift —指示 shift + key 鍵的狀態並且返回 A 或 a 其中之一
  5. keypress 不區分小鍵盤和主鍵盤的數字字符,keydown 和 keyup 區分小鍵盤和主鍵盤的數字字符
  6. keydown、keyup事件是當按下 ( keydown ) 或鬆開 ( keyup ) 一個鍵時發生的。因爲通常按下鍵盤的鍵每每會當即放開(這和鼠標不一樣),因此這兩個事件使用哪一個差異不大。並且,up和其餘二者還有一個區別:要判斷key修改後的狀態必須用up
<div><input id="input" onkeydown="return a(event)"/><p></p></div>
	
	<script type="text/javascript" defer="defer">
		
			function a(e){
				var keyCode = e.keyCode;
				if(!isNumber(keyCode)){
					$('p').html("只能輸入數字");
					return false;
				}else{
					$('p').html("");
				}
					
			};
			
			function isNumber(keyCode){
				if((keyCode>=48)&&(keyCode<=57))
					return true;
				if((keyCode>=96)&&(keyCode<=108))
					return true;
				if(keyCode == 8)
					return true;
				return false;
			};  </script>
相關文章
相關標籤/搜索