일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- laravel
- jenkins
- AWS
- linux
- ubuntu
- springboot
- 요리
- ReactJS
- IntelliJ
- jsp
- 맛집
- JVM
- javascript
- php
- Web Server
- Git
- Gradle
- MySQL
- Spring Batch
- Spring
- it
- redis
- Oracle
- db
- Spring Boot
- Design Patterns
- devops
- java
- tool
- elasticsearch
Archives
- Today
- Total
아무거나
react + typescript ref를 사용한 값 입력 후 포커싱 자동 이동 예제(ex:핀 번호) 본문
Javascript & HTML & CSS/reactjs
react + typescript ref를 사용한 값 입력 후 포커싱 자동 이동 예제(ex:핀 번호)
전봉근 2020. 4. 6. 21:56반응형
값 입력 후 포커싱 자동 이동 예제(ex:핀 번호)
하기 HTML의 input 태그 설정을 사용하게되면 모바일에서 숫자만 입력 가능한 키패드가 표시된다.
// react + typescript
...
class PinLogin extends React.Component<Props, OwnState> {
...
pinCodeNumFocus2: React.RefObject<HTMLInputElement>
pinCodeNumFocus3: React.RefObject<HTMLInputElement>
pinCodeNumFocus4: React.RefObject<HTMLInputElement>
pinCodeNumFocus5: React.RefObject<HTMLInputElement>
pinCodeNumFocus6: React.RefObject<HTMLInputElement>
constructor(props) {
super(props)
this.state = {}
this.pinCodeNumFocus2 = React.createRef()
this.pinCodeNumFocus3 = React.createRef()
this.pinCodeNumFocus4 = React.createRef()
this.pinCodeNumFocus5 = React.createRef()
this.pinCodeNumFocus6 = React.createRef()
}
handleMoveFocus = (inputOrderNum:number) => {
switch (inputOrderNum) {
case 1:
this.pinCodeNumFocus2.current.focus()
break
case 2:
this.pinCodeNumFocus3.current.focus()
break
case 3:
this.pinCodeNumFocus4.current.focus()
break
case 4:
this.pinCodeNumFocus5.current.focus()
break
case 5:
this.pinCodeNumFocus6.current.focus()
break
case 6:
// this.pinCodeNumFocus6.current.focus()
// 값 전부 입력 후 저장 가능하게 함수를 설정해도 됨
break
}
}
}
...
// html
...
<input
type={'numeric'}
inputMode={'decimal'}
maxLength={1}
pattern={'d*'}
onChange={event => this.handleMoveFocus(1)}
placeholder={'-'}
/>
<input
type={'numeric'}
inputMode={'decimal'}
maxLength={1}
pattern={'d*'}
onChange={event => this.handleMoveFocus(2)}
ref={this.pinCodeNumFocus2}
placeholder={'-'}
/>
<input
type={'numeric'}
inputMode={'decimal'}
maxLength={1}
pattern={'d*'}
onChange={event => this.handleMoveFocus(3)}
ref={this.pinCodeNumFocus3}
placeholder={'-'}
/>
<input
type={'numeric'}
inputMode={'decimal'}
maxLength={1}
pattern={'d*'}
onChange={event => this.handleMoveFocus(4)}
ref={this.pinCodeNumFocus4}
placeholder={'-'}
/>
<input
type={'numeric'}
inputMode={'decimal'}
maxLength={1}
pattern={'d*'}
onChange={event => this.handleMoveFocus(2)}
ref={this.pinCodeNumFocus2}
placeholder={'-'}
/>
<input
type={'numeric'}
inputMode={'decimal'}
maxLength={1}
pattern={'d*'}
onChange={event => this.handleMoveFocus(5)}
ref={this.pinCodeNumFocus5}
placeholder={'-'}
/>
<input
type={'numeric'}
inputMode={'decimal'}
maxLength={1}
pattern={'d*'}
onChange={event => this.handleMoveFocus(6)}
ref={this.pinCodeNumFocus6}
placeholder={'-'}
/>
...
반응형
'Javascript & HTML & CSS > reactjs' 카테고리의 다른 글
Fragments 정의 (0) | 2020.05.08 |
---|---|
모바일에서 Input Text 에 값을 입력 시 하단 키패드 때문에 화면 가려지는 현상 해결 (0) | 2020.05.06 |
React Hook을 이용한 Functional Component 구현 (0) | 2020.04.06 |
Number값 들어온 값에 따라 0표시 제어하는 함수(개수 입력에 용이하다) (0) | 2020.03.21 |
React + Typescript Scroll Down 구현 (0) | 2020.03.21 |
Comments