작성
·
5.1K
0
한글로 내용을 작성후 엔터키를 입력하면 이벤트가 두번 발생합니다.
캡틴 판교님의 마지막 강의에서도 시연 중 이런 현상이 있는 것으로 보였는데요.
이 문제에 대해 해결 방법이 있을까요?
Vue.js 포럼에서는 CJK 언어에서 발생하는 문제로 keyup 이벤트가 발생할 때마다
해당 인풋의 value 값을 읽어와 임의로 업데이트 해주는 것으로 해결하라고 하던데,
버튼을 클릭하여 추가할 때는 문제가 없지만, 엔터키 입력시에는 문제가 발생하는 것 같아서요.
참고로 한번은 한글 내용이 담긴 채로 이벤트가 발생하고, 곧바로 빈 값을 이벤트가 한번 더 발생합니다.
빈 값일 경우에는 저장이 안되도록 예외 처리는 되어 있지만 빈 값일 경우 내용을 입력하세요 라는 alert을 띄우게 해놨더니,
한글 입력 -> 엔터 키 입력 -> 한글 내용 등록 -> alert 창 호출 이렇게 돌아가고 있습니다.
답변 2
1
https://levelup.gitconnected.com/javascript-events-handlers-keyboard-and-load-events-1b3e46a6b0c3 e.isComposing이 false일 때만 처리하면 된다고 합니다!
0
정확한 문제는 확인해봐야하지만 keyup 이나 keydown 시 한글 입력중에 엔터를 치면 두번호출되네요..
keypress를 사용하면 한번만 호출됩니다.
한글입력중이아닌경우 (한글입력을 마친 후 방향키로 커서를 이동한 후)에는 keyup, keydown 모두 한번 호출되네요
감사합니다!