Keydown 이벤트를 사용하여 사용자가 구현 code_javascript 기술을 입력하지 못하도록 방지

WBOY
풀어 주다: 2016-05-16 16:55:41
원래의
2028명이 탐색했습니다.

먼저 각 이벤트의 차이점을 이해하세요.

KeyDown: 컨트롤에 포커스가 있을 때 키를 눌렀을 때 발생합니다.
KeyPress: 컨트롤에 포커스가 있을 때 키를 눌렀을 때 발생합니다.
KeyUp: In은 컨트롤에 포커스가 있을 때 키를 눌렀을 때 발생합니다. 컨트롤에 포커스가 있으면 키를 놓습니다.

1. KeyPress는 주로 문자, 숫자 등 ANSI 문자를 수신하는 데 사용됩니다. KeyDown 및 KeyUP 이벤트 프로세스는 일반적으로 PrScrn을 제외한 키보드의 모든 키를 캡처할 수 있습니다(특수 키보드의 특수 키는 여기서 논의되지 않습니다

2. KeyPress는 단일 문자만 캡처할 수 있는 반면 KeyDown 및 KeyUp은 키 조합을 캡처할 수 있음). .

3. KeyPress는 키보드(SHIFT 키)의 물리적 상태를 표시하지 않고 문자만 전달합니다. KeyPress는 각 문자의 대문자와 소문자 형태를 서로 다른 키 코드, 즉 KeyDown으로 해석합니다. KeyUp은 사용할 수 없습니다. KeyDown 및 KeyUp은 두 가지 매개변수를 사용하여 각 문자의 대문자 및 소문자 형식을 해석합니다. keycode - 물리적 키(A와 a를 동일한 키로 반환)를 표시합니다. 이는 키의 이동을 나타내며 A 또는 a 중 하나를 반환합니다.

5. KeyPress는 작은 키보드의 숫자를 구분하지 않으며 KeyDown 및 KeyUp은 숫자를 구분합니다. 작은 키보드와 기본 키보드.

6. , KeyDown, KeyUp 이벤트는 키를 눌렀을 때(KeyDown) 또는 놓았을 때(KeyUp) 발생하는 경우가 많습니다. 마우스), 이 두 이벤트에 사용할 항목은 크지 않습니다. 또한 up과 다른 두 이벤트 사이에는 또 다른 차이점이 있습니다. 즉, 키의 수정된 상태를 확인하려면 up을 사용해야 합니다. keydown 이벤트를 통해 사용자의 입력을 방지할 수 있습니다. 예를 들어 특정 입력 필드에는 키보드의 숫자 키

keyCode

[48-57] 숫자 키만 사용할 수 있습니다.
[96-105] 숫자키패드
추가적으로 백스페이스키로 삭제가 가능합니다

코드는 다음과 같습니다


var input = document.getElementById(' number_ipt')
input.onkeydown = function(e) {
var keyCode = e.keyCode
if ( !isNumber(keyCode) ) return false
}

// 숫자만 입력 가능
function isNumber(keyCode) {
// 숫자
if (keyCode >= 48 && keyCode <= 57 ) return true
// 작은 숫자 키보드
if ( keyCode >= 96 && keyCode <= 105) return true
// 백스페이스 키
if (keyCode == 8) return true
return false
}

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿