📌 HTML form 태그와 입력 양식 정리
웹페이지에서 사용자에게 정보를 입력받을 때는 form 태그를 사용합니다.
입력값은 action 속성에 지정된 페이지(예: result.jsp)로 전송됩니다.
HTML에서 form 태그는 “사용자로부터 입력을 받아서 서버로 전달하기 위해” 사용합니다.
즉, 단순히 화면에 입력창만 띄우는 게 아니라, 입력된 데이터를 묶어서 전송할 수 있게 해주는 컨테이너 역할을 합니다.
📌 form을 사용하는 이유
- 사용자 입력 수집
- 이름, 비밀번호, 이메일, 날짜, 체크박스, 라디오버튼 등 다양한 입력을 받을 수 있음
- 데이터 전송 기능
- action 속성에 지정된 서버 페이지(.jsp, .php, .html 등)로 데이터를 전송
- method="get" → 주소(URL)에 붙여서 전송
- method="post" → 보이지 않게 전송 (보안 ↑)
- 입력값 검증 가능
- type="email", type="number", required 같은 속성을 통해 기본적인 입력 검증 가능
- 서버와 연동되는 기본 단위
- 로그인, 회원가입, 검색창, 예약 시스템 같은 웹 애플리케이션의 핵심은 대부분 form을 기반으로 동작
✅ form 태그 기본 구조
<form action="전송할_페이지.jsp" method="get/post">
<!-- 입력 요소들 -->
</form>
- action : 입력값을 보낼 대상 페이지
- method : GET(주소에 붙음) / POST(숨겨서 보냄)
✅ 주요 입력 요소 정리
1. 텍스트 입력
<input name="userName" type="text" value="초기상태">
- type="text" → 일반 텍스트 입력
- value → 기본값 설정
2. 비밀번호 입력
<input name="userPw" type="password">
3. 이메일 입력
<input name="userEmail" type="email">
4. 날짜 선택
<input name="userDate" type="date">
5. 숫자 입력
<input name="userNumber" type="number">
6. 라디오 버튼
<input type="radio" name="userRoom" value="single"> single
<input type="radio" name="userRoom" value="double" checked> double
<input type="radio" name="userRoom" value="twin"> twin
- 같은 name 값끼리 묶여서 하나만 선택 가능
7. 드롭다운(select)
<select name="userEmail2">
<option>선택</option>
<option value="daum.net">daum.net</option>
<option value="naver.com">naver.com</option>
<option value="gmail.com">gmail.com</option>
</select>
8. 범위 선택 (슬라이더)
<input name="userJumsu" type="range" min="1" max="10" step="1" value="5">
- 중복 선택 가능
9. 체크박스
<input name="userOption" type="checkbox" value="조식"> 조식
<input name="userOption" type="checkbox" value="바베큐"> 바베큐
<input name="userOption" type="checkbox" value="픽업 서비스"> 픽업 서비스
10. 파일 업로드
<input type="file" name="userFile">
11. 여러 줄 텍스트 입력
<textarea name="userMsg" rows="3" cols="50" placeholder="문의사항 입력"></textarea>
12. 버튼들
<input type="submit" value="전송"> <!-- 입력값 전송 -->
<input type="reset" value="취소"> <!-- 입력값 초기화 -->
<input type="button" value="버튼"> <!-- 단순 버튼 -->
✅ 전체 예제 코드
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>예약 문의</title>
</head>
<body>
<h1>예약 문의</h1>
<form action="result.jsp">
<p><label>작성자</label>
<input name="userName" type="text" value="초기상태"></p>
<p><label>비밀번호</label>
<input name="userPw" type="password"></p>
<p><label>제목</label>
<input name="userTitle" type="text"></p>
<p><label>이메일</label>
<input name="userEmail" type="email"></p>
<p><label>투숙 날짜</label>
<input name="userDate" type="date"></p>
<p><label>투숙 인원</label>
<input name="userNumber" type="number"></p>
<fieldset style="width:30%">
<legend>객실 선택</legend>
<input name="userRoom" type="radio" value="single"> single
<input name="userRoom" type="radio" value="double" checked> double
<input name="userRoom" type="radio" value="twin"> twin
</fieldset>
<p>예약자 성별<br>
<input type="radio" name="gender" value="man"> 남자
<input type="radio" name="gender" value="woman"> 여자</p>
<p><label>Email</label>
<input name="userEmail1" type="text"> @
<select name="userEmail2">
<option>선택</option>
<option value="daum.net">daum.net</option>
<option value="naver.com">naver.com</option>
<option value="gmail.com">gmail.com</option>
</select>
</p>
<p><label>평점</label>
<input name="userJumsu" type="range" min="1" max="10" step="1" value="5"></p>
<fieldset style="width:50%">
<legend>옵션 선택</legend>
<input name="userOption" type="checkbox" value="조식"> 조식
<input name="userOption" type="checkbox" value="바베큐"> 바베큐
<input name="userOption" type="checkbox" value="픽업 서비스"> 픽업 서비스
</fieldset>
<p>신원 확인용 사진
<input type="file" name="userFile"></p>
<p><label>문의 사항</label>
<textarea name="userMsg" rows="3" cols="50" placeholder="문의사항 입력"></textarea></p>
<input type="submit" value="전송">
<input type="reset" value="취소">
<input type="button" value="버튼">
</form>
</body>
</html>
✅ 실행 결과 화면
폼을 실행하면 이렇게 보입니다 👇
- 이름, 비밀번호, 제목, 이메일 등 기본 입력칸
- 날짜·인원·객실선택 라디오버튼
- 이메일 도메인 선택 드롭다운
- 평점 슬라이더
- 옵션 선택 체크박스
- 파일 업로드, 문의사항 텍스트 영역
- 전송/취소 버튼
'기초 및 언어 > ▶ HTML & CSS' 카테고리의 다른 글
| 2. CSS_선택자 (0) | 2025.09.06 |
|---|---|
| 1. CSS_CSS적용방법 (0) | 2025.09.06 |
| 5. HTML_table (1) | 2025.09.05 |
| 4. HTML_iframe (0) | 2025.09.05 |
| 3. HTML_하이퍼링크 정리 <a>태그 (0) | 2025.09.04 |