일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
Tags
- 2522
- 한글이 두 번 입력됨
- javascript
- 자바스크립트
- prototype 프로퍼티
- 백트래킹
- 최소공배수
- Tanstack Query
- css
- backtracking
- 알고리즘
- 백준
- 파이썬
- __proto__ 접근자 프로퍼티
- 낙관적 업데이트
- 동기
- 9610
- python
- 한글 입력 시 이벤트 두 번 발생
- C++
- 메타버스
- float: right
- 유클리드 호제법
- 백준 9610번 파이썬 문제 풀이
- dp
- 함수 객체의 프로퍼티
- 시간
- 동적 계획법
- 프로그래밍
- 비동기
Archives
- Today
- Total
염딩코
[JavaScript] 한글 입력 시 이벤트가 두 번 호출되는 오류 본문
며칠전 사이드 프로젝트의 댓글 기능을 작업하고 있었다.
정상적으로 동작하는지 확인하기 위해 테스트를 하던 중 아래의 사진과 같은 에러가 발생했다.
"안녕"을 입력하면 "녕"까지 추가로 입력이 되었고, "하이"를 입력하면 "이"까지 추가로 입력되었다.
원인을 파악하다가 도저히 왜 이벤트가 두 번 실행되는 것인지 알 수 없었다.
구글링을 해서 찾아낸 결과,
영어와 다르게 자음과 모음의 조합으로 한 음절이 만들어지는 한글의 특성 때문에 발생하는 오류였다.
onKeyDown / onKeyUp 를 onKeyPress로 변경하면서 오류는 해결할 수 있었다.
onKeyDown / onKeyUp
키를 누르고 때는 동작 자체에 반응한다.
문자, 숫자, Ctrl, Shift, Alt, F1~F12, Scroll Lock, Pause, Enter를 인식하고 한/영, Print Screen은 인식하지 못 한다.
onKeyPress
문자가 실제로 입력됐을 때 반응한다.
Ctrl, Shift, Alt, F1~F12, Scroll Lock, Pause, Enter, 한/영, Print Screen은 인식하지 못 한다.
'Front-End > Javascript' 카테고리의 다른 글
[JavaScript] 자식 컴포넌트의 클릭 이벤트 (feat. event.stopPropagation()) (0) | 2024.05.22 |
---|---|
[JavaScript] 함수 객체의 프로퍼티 (0) | 2024.01.26 |
[JavaScript] 함수는 왜 일급객체(First Class Object)일까? (0) | 2024.01.09 |
[JS] 생성자 함수에 의한 객체 생성 (0) | 2023.08.05 |
[JS] Property Attribute (0) | 2023.08.05 |