<form> 태그<form>과 </form> 사이에 여러 폼 요소 삽입 <form [속성=”속성값”]> 여러 폼 요소 </form>
(우리가 아는 폼의 형태!)

<form> 태그의 속성| 속성 | 설명 |
|---|---|
| method | 사용자가 입력한 내용을 서버 쪽 프로그램으로 어떻게 넘겨줄 것인지 지정함. ▶ get : 데이터를 256 ~ 4,096 byte까지만 서버로 넘길 수 있음. 주소 표시줄에 사용자가 입력한 내용이 그대로 드러나는 단점이 있음. ▶ post : 입력한 내용의 길이에 제한받지 않고, 사용자가 입력한 내용도 드러나지 않음. |
| name | 자바스크립트로 폼을 제어할 때 사용할 폼의 이름을 지정함. |
| action | <form> 태그 안의 내용을 처리해 줄 서버 프로그램을 지정함. |
| target | action 속성에서 지정한 스크립트 파일을 현재 창이 아닌 다른 위치에서 열도록 함. |
<fieldset> 태그폼 요소를 그룹으로 묶는 태그<fieldset [속성=”속성값”]> … </fieldset>
<legend> 태그그룹으로 묶는 구역에 제목을 붙이는 태그<fieldset>
<legend> 그룹 이름 </legend>
</fieldset>
코드 예시 )
...
<body>
<h1>레드향 주문하기</h1>
<!-- form 태그 삽입하기 & 그룹으로 묶고 제목 붙이기 -->
<form>
<fieldset>
<legend>상품 선택</legend>
</fieldset>
<fieldset>
<legend>배송 정보</legend>
</fieldset>
</form>
</body>
</html>
✔ 결과

<label> 태그<input> 태그와 같은 폼 요소에 레이블을 붙일 때 사용함<label>로 설정한 부분을 클릭해도 input 태그로 마우스가 가게 된다.
코드 예시 ) - label 태그 안에 input 태그 넣기
...
<meta charset="UTF-8">
<title>label 태그 사용하기</title>
</head>
<body>
<form>
<!-- label 태그 안에 input 태그 넣기 -->
<label>아이디(6자 이상) <input type="text"></label>
</form>
</body>
</html>
코드 예시 ) - label 요소와 input 요소 연결하기
...
<meta charset="UTF-8">
<title>label 태그 사용하기</title>
</head>
<body>
<form>
<!-- label 요소와 input 요소 연결하기 -->
<label for="user-id">아이디(6자 이상) </label>
<input type="text" id="user-id">
</form>
</body>
</html>
✔ 결과

<input> 태그한 줄짜리 텍스트 입력 필드비밀번호 입력란코드 예시 ) - 간단한 로그인 폼 만들기
...
<title>로그인</title>
</head>
<body>
<form>
<fieldset>
<!-- 텍스트 필드와 비밀번호 필드가 있는 로그인 폼 만들기 -->
<label>아이디 : <input type="text" size="30"></label><br>
<label>비밀번호 : <input type="text" size="15" maxlength="15"></label><br>
<input type="submit" value="로그인">
</fieldset>
</form>
</body>
</html>
✔ 결과

http://로 시작하는 사이트 주소 입력코드 예시 ) - 배송 정보 입력하는 폼 만들기
...
<title>배송 정보 입력하는 폼 만들기</title>
</head>
<body>
<form>
<fieldset>
<legend>배송 정보</legend>
<ul>
<li>
<label>이름 <input type="text" size="20"></label>
</li>
<li>
<label>패스워드 <input type="password"></label>
</li>
<li>
<label>배송 주소 <input type="text" size="25"></label>
</li>
<li>
<label>이메일 <input type="email" size="20"></label>
</li>
<li>
<label>연락처 <input type="tel" size="12" maxlength="11"></label>
</li>
</ul>
</fieldset>
</form>
</body>
</html>
✔ 결과

여러 항목 중 하나만 선택할 때여러 항목 중 둘 이상을 선택할 때코드 예시 ) - 체크 박스와 라디오 버튼을 삽입하는 폼 만들기
...
<title>상품 선택</title>
</head>
<body>
<form>
<fieldset>
<legend>상품 선택</legend>
<p>주문할 상품을 선택해 주세요.</p>
<ul>
<li>
<label>
<input type="checkbox" name="prod" value="s_3"> 선물용 3kg
</label>
</li>
<li>
<label>
<input type="checkbox" name="prod" value="s_5"> 선물용 5kg
</label>
</li>
<li>
<label>
<input type="checkbox" name="prod" value="h_3"> 가정용 3kg
</label>
</li>
<li>
<label>
<input type="checkbox" name="prod" value="h_5"> 가정용 5kg
</label>
</li>
</ul>
<p>포장 선택</p>
<ul>
<li>
<label>
<!-- checked를 선택하면 처음에 기본으로 선택되어짐 -->
<input type="radio" name="gift" value="yes" checked> 선물 포장
</label>
</li>
<li>
<label>
<input type="radio" name="gift" value="no" > 선물 포장 안함
</label>
</li>
</ul>
</fieldset>
</form>
</body>
</html>
✔ 결과

브라우저에 따라 스핀 박스로 표시됨슬라이드 막대를 이용해 숫자 입력코드 예시 ) - 스핀 박스, 슬라이드 막대를 사용해 숫자 입력하기
...
<body>
<form>
<fieldset>
<ul>
<li>
<lable><input type="checkbox" value="s_3">선물용 3kg</lable>
<!-- 최소 0, 최대 5까지 설정 할 수 있게함 -->
<input type="number" min="0" max="5">
</li>
<li>
<label><input type="checkbox" value="s_5">선물용 5kg</label>
<!-- 최소 0, 최대 3까지 설정 할 수 있게함 -->
<input type="number" min="0" max="3">
</li>
</ul>
</fieldset>
<fieldset>
<ul>
<li>
<label><input type="checkbox" value="h_3">가정용 3kg</label>
<!-- 최소 0, 최대 5까지 스크롤 할 수 있고, 초기 설정 값은 1, 1씩 증가(->step) -->
<input type="range" min="0" max="5" value="1" step="1">
</li>
<li>
<label><input type="checkbox" value="h_5">가정용 5kg</label>
<!-- 최소 0, 최대 3까지 스크롤 할 수 있고, 초기 설정 값은 1, 1씩 증가(->step) -->
<input type="range" min="0" max="3" value="1" step="1">
</li>
</ul>
</fieldset>
</form>
</body>
</html>
✔ 결과

📅 달력을 이용해 날짜 입력!
날짜를 선택해서 입력할 수 있음. 날짜를 선택하면 필드에 “yyyy-mm-dd” 형식으로 연도, 월, 일이 표시됨.월을 선택해서 입력할 수 있음. 월을 선택하면 “yyyy-mm” 형식으로 연도, 월까지만 입력됨.코드 예시 ) - 3가지 형식의 날짜 입력하기
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>날짜</title>
</head>
<body>
<form>
<fieldset>
<h3>date</h3>
<input type="date"><br><hr>
<h3>month</h3>
<input type="month"><br><hr>
<h3>week</h3>
<input type="week">
</fieldset>
</form>
</body>
</html>
✔ 결과 (위쪽부터 date, month, week(→ week은 세 번째 주 입력))



🕛 시간 입력!
time은 폼에서 시간을 입력하게 함. 시간 입력 필드는 웹 브라우저마다 조금씩 다르게 나타나는데 항목이 3개로 구성된다는 점은 같음. 첫 번째 항목부터 ‘오전’과 ‘오후’를 의미하고 나머지는 ‘시’와 ‘분’을 의미함.사용자가 웹 문서를 보고 있는 지역에 맞는 날짜와 시간을 함께 입력할 수 있음.코드 예시 ) - 3가지 형식의 시간 입력하기
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>시간</title>
</head>
<body>
<form>
<fieldset>
<h3>time</h3>
<input type="time"><br><hr>
<h3>datetime</h3>
<input type="datetime"><br><hr>
<h3>datetime-local</h3>
<input type="datetime-local">
</fieldset>
</form>
</body>
</html>
✔ 결과 (위쪽부터 time, datetime, datetime-local)



💠 datetime은 직접 입력함
사용자 입력 내용을 서버로 전송사용자 입력 내용 전부 삭제value 속성을 이용해 버튼 표시 내용 지정submit 버튼 대신 이미지 삽입코드 예시 ) - 전송과 리셋 버튼 추가하기 / 이미지 버튼 추가하기
<!-- submit, reset -->
...
<body>
<form>
<fieldset>
<legend>배송 정보</legend>
<ul>
<li>
<label>이름 <input type="text" size="15"></label>
</li>
<li>
<label>배송 주소 <input type="search" size="15"></label>
</li>
<li>
<label>이메일 <input type="email" size="15"></label>
</li>
<li>
<label>연락처 <input type="tel" size="15" maxlength="11"></label>
</li>
<li>
<label>배송 지정 (주문일로부터 최소 3일 이후)<br>
<input type="date">
</label>
</li>
</ul>
</fieldset>
<input type="submit" value="주문하기">
<input type="reset" value="취소하기">
</form>
</body>
</html>
<!-- image -->
...
<style>
/* 버튼 이미지를 수직으로 정렬하기 위한 style */
#login-img {
vertical-align: middle;
}
</style>
<body>
<form action="" method="POST">
<label>아이디: <input type="text" size="10" id="user_id"></label>
<label>비밀번호: <input type="password" size="10" id="user_id"></label>
<!-- 이미지 버튼 추가하기 -->
<input type="image" src="images/login.png" alt="로그인" id="login-img">
</form>
</body>
</html>
✔ 결과 (위쪽부터 submit/reset, image)


주로 버튼 클릭해서 자바스크립트 실행할 때 사용value 속성을 이용해 버튼 표시 내용 지정코드 예시 ) - 버튼을 삽입하여 자바스크립트 실행하기
...
<title>웹 폼</title>
</head>
<body>
<form>
<!-- 폼 안에 자바스크립트 실행 버튼 삽입하기 -->
<!-- onclick의 window.open은 새로운 브라우저를 생기게 해줌 -->
<!-- height와 width를 사용하여 새로 열린 브라우저를 조절 -->
<input type="button" value="공지 창 열기" onclick="window.open('notice.html', '_blank', 'width=300, height=400')">
</form>
</body>
</html>
✔ 결과

파일 첨부코드 예시 ) - 버튼을 삽입하여 자바스크립트 실행하기
...
<title>웹 폼</title>
</head>
<body>
<form>
<!-- 폼 안에 자바스크립트 실행 버튼 삽입하기 -->
<!-- onclick의 window.open은 새로운 브라우저를 생기게 해줌 -->
<!-- height와 width를 사용하여 새로 열린 브라우저를 조절 -->
<input type="button" value="공지 창 열기" onclick="window.open('notice.html', '_blank', 'width=300, height=400')">
</form>
</body>
</html>
✔ 결과
