Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- javascript코딩테스트
- sort
- 6주포트폴리오
- JavaScript
- couchcoding
- foreach
- useSearchParams
- react redux
- useEffect
- redux 사용방법
- 콜백함수
- line-through
- 자바스크립트
- 블럭요소
- toString
- 협업프로젝트
- Redux store
- 자바스크립트배포
- 카우치코딩
- useParams
- Redux
- React state
- db.json
- JSON
- react
- 인라인블럭
- javascript React
- React onClick
- first-child
- redux toolkit
Archives
- Today
- Total
개발하는 루루언니
react: input값이 여러개일때 각각 제어하기 본문
728x90
반응형
<input
id="company"
name="compeny"
type="text"
className="input-default"
onChange={onChangeHandler}
value={compeny || ''}
required
>
</input>
🍎 회사 홈페이지 견적문의 작업을 하면서 input 값을 처리하는 과정을 적어보려고 한다.
🌈 구현해야할 로직
1. 인풋은 회사소속/성함/연락처/이메일/문의분야/문의내용 이고 각 입력한 value 의 값을 가져와야 한다.
2. 문의분야는 select_box 로 선택한 값만 가져와 value에 넣어줘야 한다.
3. 제출하기를 눌렀을때 인풋에 값이 없으면 전송되지 않는다.
4. 이메일과 전화번호 유효성 검사를 거친후 맞지 않으면 제출하기가 비활성화가 된다.
<input
id="company"
name="compeny"
type="text"
className="input-default"
onChange={onChangeHandler}
value={compeny || ''}
required
>
</input>
<input
id='fname'
name="user_name"
type="text"
className="input-default"
onChange={onChangeHandler}
value={user_name || ''}
required
>
</input>
.... > 만들고자 하는 갯수와 맞게
★ 여기서 주의할점은 value 값에 내가 만든 state의 변수이름을 적어야 한다는 것이다.
- input의 값을 가져오기 위해선 onChange 를 통해 함수를 만들어 주어야 한다.
- input 의 value 값을 저장하기 위한 useState 를 생성해준다. => Content, setContent
const [Content, setContent] = useState({
compeny : '',
user_name : '',
user_phoneNumber : '',
user_email : '',
select_box : '',
selectProduct : '',
message : '',
});
const {compeny, user_name, user_phoneNumber,user_email, select_box ,message } = Content;
- input 이 여러개 임으로 해당 값을 오브젝트로 담아준다.
- compeny : '' , user_name = '' 이런식 으로 초기값을 담아준다.
- 해당 값을 변수로 꺼내와 사용하기 편리하게 아래와 같이 코드를 짜준다.
const {compeny, user_name, user_phoneNumber,user_email, select_box ,message } = Content;
- onChangeHandle 함수를 통해 해당 값들을 event 값으로 해서 불러온다.
const onChangeHandler=(e)=>{
const {name,value} = e.target;
const nextValue = {
...Content,
[name] : value,
}
setContent(nextValue);
- const { name,value } = e.target 을 통해 name 과 value 값을 꺼내온다.
- 여러개 Input을 담을 변수를 하나 만든다. nextValue
- 변수 안에 기존에 있던 Content 값이 아닌 복사본 ...Content 값을 만든다.
- [ name ] : value 로 해당 값을 만들게 되면 { compeny : '입력한값 '} 으로 나오게 된다.
- nextValue 안에 담긴 값들을 setContent 안에 담아주면 입력한 값이 업데이트가 된다.
<select
id="category"
className="input-default"
name="select_box"
onChange={onChangeHandler}
value={select_box || ''}
required
>
<option name="product" value="product" ></option>
<option nmae="ipt" value="ipt">IPT</option>
<option name="Network" value="network">NETWORK</option>
<option name='WLan' value="wlan">WLAN</option>
<option name="보안" value="security">보안</option>
<option name="개발" value="r&d">개발</option>
</select>
<input type='text'name="selectProduct" style={{display:"none"}} onChange={onChangeHandler} value={select_box || ""} required></input>
- select box 같은경우 option을 선택하여 값을 불러와야한다. value 값에 각각의 값을 입력해준다.
- email.js 를 사용할 경우 input의 name 값을 가져와 사용하게 되는데 select 같은경우 값을 가져오기가 힘들기 때문에
- 임의의 값을 넘겨줄 수 있는 input 을 만들었다. ( 스타일은 display : "none") 을 해준뒤 넘어오는 값을 저장해준다.
728x90
'컴퓨터 정보 > 리액트' 카테고리의 다른 글
React : 설치 환경 만들기 (1) | 2024.09.15 |
---|---|
react : 공공데이터 포털 api 불러오기 사용법 (0) | 2024.03.19 |
react : API 요청하기 (GET) (0) | 2023.09.13 |
react : scroll 값에 따른 text 값 변화주기 (0) | 2023.09.07 |
react : EmailJs 와 reCaptcha 연동하여 사용하기 (0) | 2023.07.20 |