2013-07-11 6 views
2

웹 프로젝트의 전신 JS 코드를 읽을 때 문제가 있습니다. 사용자가 keydown 이벤트 대신 유효성을 검사하도록하려면 keyup 이벤트를 사용했습니다. 브라우저 호환성과 관련하여 이러한 종류의 작업에 keydown 이벤트에 문제가 있습니까? 나는 keydown가 Firefox, Chrome 및 IE10에서 잘 작동 함을 발견했습니다.자바 스크립트 키 업 및 keydown 이벤트

+1

당신은 모든 문제를 보았는가? 아니면 어떤 것이 있을지 묻는 것입니까? – scunliffe

+1

IE는 항상 expection입니다. – VirtualTroll

+0

@scunliffe 나는 어떤 것이 있는지 묻고 있습니다. 사용자의 입력에 대한 유효성 검사를 트리거하려면 keydown이 필요하기 때문입니다. – RocShow

답변

1

텍스트 영역을 편집하는 경우 keydown에 키가 아직 텍스트 영역에 아무것도 넣지 않았습니다. keyup에 텍스트 영역의 내용이 수정됩니다. 나는 당신이 키를 누르고 있으면 다른 행동을한다고 믿는다.

+0

오른쪽. 오늘 나는 keydown을 사용하면 값을 얻기 위해 setTimeout을 사용해야한다는 것을 알았다. – RocShow

0

keypress 이벤트는 키 누르기와 keydown 이벤트가 물리적으로 이동하는 키에 해당하기 때문에 keypress는 필드에 입력되는 문자에 해당하므로 키 누르기 이벤트를 살펴볼 수 있습니다. 유효성 검사는 필드의 문자를 기반으로하며 keyup 및 keydown은 게임과 같은 용도로 사용됩니다.

http://www.bloggingdeveloper.com/post/KeyPress-KeyDown-KeyUp-The-Difference-Between-Javascript-Key-Events.aspxJavaScript: input validation in the keydown event

+0

키 누르기가 정상입니다. 그러나 여기에는 적합하지 않습니다. 이 코드 조각의 목적은 사용자의 입력을 검증하기 때문입니다. 따라서 다음과 같은 상황이 있습니다. 내 웹에서 사용자가 입력 한 글자를 입력 할 수 없습니다. "a"와 같은 키를 계속 누르고있을 때는 오른손으로 왼손 손가락을 사용하고 손가락을 올리지 말고 제출 버튼을 클릭하십시오. 결과적으로 사용자 입력에는 "a"가 많이있을 것입니다. 키가 올라 오기 전에 validate 함수를 호출 할 수 없기 때문입니다. 따라서이 방법을 통해 유효성 검사를 건너 뛰는 것은 쉽습니다. – RocShow

+0

이런 이유로 저는 Keydown이 더 나은 선택이라고 생각합니다. – RocShow