Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 폼 입력 바인딩
- 프로그래머스 데브코스
- flex
- 고양이 사진 검색기
- 프로그래머스 데브코스 프론트엔드
- 프로그래머스 프론트엔드 데브코스
- 다른컴퓨터에서 git사용
- 쌓임맥락
- Spacer
- 리스트 렌더링
- 이벤트 수식어
- KDT 프로그래머스
- 프로그래머스 K_Digital Training
- react next
- vuex map
- SCSS extend
- nextjs사용법
- SCSS import
- SCSS forward
- vue mixin
- 리액트
- KDT 프로그래머스 데브코스 프론트엔드
- vue 지역 컴포넌트
- intersection opserver
- git 같은계정 다른 컴퓨터
- postcss
- SCSS use
- Vue
- netlify redirect
- vue 이벤트 수신
Archives
- Today
- Total
혼자 적어보는 노트
[React] input에 숫자만 출력하기 / 한글입력 오류 해결 본문
onChange를 이용하여 입력한 value를 state에 저장하여 그 내용을 출력하는
코드를 작성하는 중 숫자만 입력받게 해야했다.
const handleKeyDown = (event) => {
if (!Number(event.key) || !event.key == "Backspace") {
event.preventDefault();
}
};
<input
ref={quanInput}
type="tel"
onKeyDown={handleKeyDown}
value={quan.value}
onChange={quan.onChange}
/>
onKeyDown을 사용하여 위의 코드랑 비슷한 식으로 작성했는데
이상하게 한글의 자음, 모음은 입력되는 현상이 발생했다.
함수실행은 분명히 keyDown먼저 되는데 말이다..
input type을 number로 해보는 등등 여러가지를 해보고
keyCode나 key전부 해봤는데 또 어쩌다 한글입력이 안되다가도
또 다음날 같은코드에 실행을 시켜보면 한글입력이 된다던지..
onKeyDown으로 처리를 해야된다는 글을 보고
keyCode를 너무 고집했던 같아 생각의 방향을 바꾸었다
const isNumber = (value) => {
const regex = /[0-9]/g;
return regex.test(value);
};
const onChange = (event) => {
if (event.nativeEvent.data && isNumber(event.nativeEvent.data)) {
setValue(event.target.value);
}else if (event.nativeEvent.data === null) {
// 띄어쓰기는 가능하게 설정
setValue(event.target.value);
}
event.preventDefault();
return null;
};
onChange의 event에는 다양한 속성들이 존재한다.
그 중 event.nativeEvent.data를 보면 내가 입력한 Data를 알 수 있다.
이것을 정규식 표현인 RegExp와 조합하여 입력받은 데이터가 Number인지 확인한다.
'React' 카테고리의 다른 글
[React] select 사용하여 option구현 (장바구니옵션) (0) | 2021.12.05 |
---|---|
[React] Checkbox 상태 관리하기 (0) | 2021.11.28 |
[React] react hooks를 사용한 ScrollToTop / 페이지 이동 시 스크롤 상단으로 초기화 (0) | 2021.11.25 |
[React] useRef hook (0) | 2021.11.19 |
[React] state async로 인한 오류 useEffect로 처리 (0) | 2021.11.18 |
Comments