프론트엔드

HTML form 태그

김씨 학생 2024. 1. 19. 15:22
form 태그

 

 

 

form 태그

웹 페이지 내에서 사용자로부터 입력을 받을 때 사용하는 태그 사용자가 입력한 데이터를 다른 페이지로 전송할 때 form 태그를 사용한다.
<form action="" method="" name="">
	입력 태그
	입력 태그
	입력 태그
	. . .
</form>

 

 

form 태그 속성 종류

action 데이터를 전송할 페이지의 경로(생략 시 현재 페이지)
method 데이터를 전송하는 방식(생략 시 get방식)
name form 태그의 이름을 설정(생략 시 이름 없음)

 

 

Input 태그

입력 받기 위해 사용되는 태그, 데이터를 지정하여 전달할 때 사용하는 태그
<input type="">

 

 

 

Input 태그 속성 종류

type 입력 종류를 설정
name value의 key값
value 사용자가 입력한 값(입력 전에 미리 값을 넣어줄 수 있다).
placeholder 값은 아니지만 미리 출력해줄 문구를 작성할 수 있다.
readonly 수정할 수 없도록 하는 설정
required 필수 항목
maxlength 글자 수 제한

 

 

 

Input 태그의 type 종류

자주 사용되는 것들:

text 텍스트 입력(작성한 텍스트가 눈으로 보임)
password 텍스트 입력(작성한 텍스트가 눈으로 안보임)
radio 여러 개 중 하나의 옵션만 선택 가능
checkbox 여러 개 중 다수의 옵션 선택 가능
file 파일 전송(첨부파일 업로드)
button, submit, reset 버튼, 전송, 초기화

 

 

 

그 외:

color 색상 선택
email 이메일 입력(골뱅이 포함 입력)
url http://로 입력
tel 핸드폰 번호 입력
date 날짜 입력(브라우저 별로 캘린더의 스타일은 다를 수 있다)
number, min, max, step 숫자 입력
range 일정 범위 안의 값만 입력
search 검색어를 입력

 

 

Label 태그

input type이 radio는 입력을 받을 수 있는 '원'만 의미한다. 그러나 그 뒤에 있는 텍스트들은 input 요소로 취급하지 않아 텍스트를 눌러도 선택되지 않는다.

 

이를 해결하기 위해 Label 태그를 사용하면 텍스트를 클릭해도 해당 Input이 선택된다.

 

<label>
	<input type="radio" name="gender" value="선택안함"> 선택안함
</label>

<label>
	<input type="radio" name="gender" value="여자"> 여자
</label>

<!-- 원하는 input태그의 id값을 for에 작성하면 멀리 있어도 반응한다. -->
<label for="gender">
	남자
</label>
<input type="radio" name="gender" id="gender" value="남자">

 

label은 for속성과 함께 사용될 수 있는데 이는 input이 여는 태그와 닫는 태그 사이에 없고 밖에 있을 경우 for에 input ID값을 넣어 연결할 수 있다.

 

 

사용 예시

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>form 태그와 input 태그</title>
</head>
<body>
    <form>
        <input type="text" placeholder="아이디를 입력해주세요." name="user-id" required autocomplete="none">
        <input type="password" placeholder="비밀번호를 입력해주세요." name="user-password">
        <fieldset>
            <legend>성별</legend>
            <label>
                <input type="radio" name="gender" value="선택안함"> 선택안함
            </label>
            <label>
                <input type="radio" name="gender" value="여자"> 여자
            </label>
            <!-- 원하는 input태그의 id값을 for에 작성하면 멀리 있어도 반응한다. -->
            <label for="gender">
                남자
            </label>
            <input type="radio" name="gender" id="gender" value="남자">
        </fieldset>
        <fieldset>
            <legend>취미</legend>
                <label><input type="checkbox" name="hobby" value="영화감상"> 영화감상</label>
				<label><input type="checkbox" name="hobby" value="골프"> 골프</label>
				<label><input type="checkbox" name="hobby" value="볼링"> 볼링</label>
				<label><input type="checkbox" name="hobby" value="기타"> 기타</label>
				<label><input type="checkbox" name="hobby" value="테니스"> 테니스</label>
				<label><input type="checkbox" name="hobby" value="산책"> 산책</label>
				<label><input type="checkbox" name="hobby" value="연애"> 연애</label>
				<label><input type="checkbox" name="hobby" value="게임"> 게임</label>
				<label><input type="checkbox" name="hobby" value="등산"> 등산</label>
				<label><input type="checkbox" name="hobby" value="축구"> 축구</label>
				<label><input type="checkbox" name="hobby" value="노래"> 노래</label>
        </fieldset>
        <p>
            <input type="date">
        </p>
        <p>
            <input type="datetime-local">
        </p>
        <p>
            <select name="major">
				<option value="computer">컴퓨터공학과</option>
				<option value="model">모델학과</option>
				<option value="nurse">간호학과</option>
				<option value="music">실용음악과</option>
				<option value="mechanic">기계공학과</option>
				<option value="messcom">신문방송학과</option>
				<option value="management">경영학과</option>
			</select>
        </p>
        <p>
            <textarea cols="30" rows="3">상품명:</textarea>
        </p>
        <label for="file">
            <img src="add.png">
        </label>
        <input type="file" id="file" style="display: none">
        <p>
            <input type="submit" value="완료">
        </p>
    </form>
</body>
</html>