250x250
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 |
Tags
- 내일배움캠프
- REACT
- 리액트 공식문서
- typeScript
- 파이썬 for in
- 내일배움캠프 프로젝트
- useEffect
- tanstack query
- React Hooks
- JavaScript
- 파이썬 딕셔너리
- 파이썬 for
- 프로그래머스
- 리액트
- 타입스크립트 props
- 리액트 훅
- 한글 공부 사이트
- 자바스크립트
- 파이썬 replace
- 파이썬 반복문
- 파이썬 slice
- 코딩테스트
- 내일배움캠프 최종 프로젝트
- useState
- 타입스크립트 리액트
- 내배캠 프로젝트
- 파이썬 enumerate
- 타입스크립트
- 리액트 프로젝트
- Next 팀 프로젝트
Archives
- Today
- Total
sohyeon kim
[JS] input maxlength : 한글, 숫자 입력 시 오류 해결 & e.target 구조분해 본문
728x90
💡 input 에 한글이나 숫자를 입력할 때 maxlength 가 부자연스러운 동작을 하는데,
원하는 글자수로 딱 제한할 수 있도록 해결해보자!
<input
type="text"
value={nickName}
onChange={(e) => setNickName(e.target.value)}
placeholder="최대 20자"
maxLength={20}
/>
maxLength 로 제한을 두니 한글을 입력했을 때나,
숫자 + 한글을 입력했을 때 21 자가 입력이 되버린다.
⬇️
const handleOnInput = (e, maxlength) => {
const { target: { value }, } = e;
if (value.length > maxlength) e.target.value = value.substr(0, maxlength);
};
// ...
<input
type="text"
value={nickName}
onInput={(e) => handleOnInput(e, 20)}
onChange={(e) => setNickName(e.target.value)}
placeholder="최대 20자"
/>
이렇게 input 값의 길이가 설정한 maxlength 보다 길면
0 ~ maxlength 까지 잘라주는 함수로 오류를 해결할 수 있다!
숫자와 한글을 조합했을 때 원했던 20자까지 잘 입력된다.
🔗 https://hianna.tistory.com/435
🔗 https://whales.tistory.com/97
728x90
반응형
'JavaScript' 카테고리의 다른 글
[JS] 불변 객체, 얕은 복사, 깊은 복사 : 원본 객체에 영향 미치지 않기 (2) | 2024.07.24 |
---|---|
[JS] forEach() & map() 차이점 (0) | 2024.07.15 |
[JS] 함수 선언문 & 화살표 함수 : 호이스팅, 호출 위치 (0) | 2024.02.16 |
[JS] 문자열 첫 글자만 대문자로 변경 (0) | 2024.02.09 |
[Web] SPA : 싱글 페이지 App (0) | 2024.01.26 |