<form>
태그는 웹 페이지에서의 입력 양식을 말한다.
로그인 창이나 회원가입 폼 등이 바로 <form>
태그를 사용하고 있다.
이 <form>
태그는 입력된 데이터를 한 번에 서버로 전송한다.
특히 백엔드를 공부하는 사람들은 이 <form>
태그 정도는 자세히 알면 좋다.
구성을 살펴보자.
<form action="/action_page.php">
<label for="fname">First name:</label>
<input type="text" id="fname" name="fname" /><br /><br />
<label for="lname">Last name:</label>
<input type="text" id="lname" name="lname" /><br /><br />
<input type="submit" value="Submit" />
</form>
이 예제에서 <form>
을 구성하는 요소들을 살펴보겠다.
<input>
의 이름을 작성함. 클릭 시 해당 input박스가 활성화되며 접근성 측면에서도 사용해 주는 게 좋음.
text="text"
: 속성값 text는 input요소의 기본값으로 텍스트를 입력할 수 있는 텍스트 필드가 만들어진다.인풋 텍스트 요소와 같은 것은 박스만 있기 때문에 어떤 것을 해야할 지 모른다. 때문에 인풋 요소에는 label을 주어야 한다.
label
: 컨트롤에 레이블(이름)을 붙이고자 하는 경우에 사용한다.label
은 항목이나 파일을 식별하기 위해 사용되는 제목이나 이름을 말한다.label
요소를 사용해야 한다.
name
: 서버에 값을 전송하기 위해 사용placeholder
: 사용자가 어떤 말을 입력해야 될지 도움말을 주기 위해서 사용value
: 타입 요소에 입력되어 있거나 입력 받는 값readonly
: 읽기만 가능하고 사용자가 입력할 수 없도록 설정(읽기 전용)required
: 필수 입력값으로 입력되어 있지 않다면 서버 전송시 오류가 발생하게 된다.(필수 입력 사항의 경우에 사용)disabled
: 비활성화 상태로 어떠한 작업도 할 수 없는 상태로 됨.minlength
: 입력할 수 있는 값의 최소 길이를 설정maxlength
: 입력할 수 있는 값의 최대 길이를 설정
text
, password
, checkbox
, radio
, file
, submit
, button
, image
, reset
, hidden
, search
, url
, tel
, email
, date
, month
, week
, time
, datetime-local
, number
, range
, color
<!-- 사용 예시 -->
<input type="password" placeholder="비밀번호를 6자리 입력해주세요." />
<input type="submit" value="전송" />
<input type="button" value="버튼" />
<input
type="image"
src="https://goo.gl/Ng66oQ"
alt="체크인"
width="20"
height="20"
/>
<input type="reset" value="초기화" />
<input type="hidden" name="using-ajax" value="true" />
<input type="number" name="" id="" min="100" step="10" max="1000" value="150" />
<input type="range" name="" id="" min="10" step="5" max="25" value="15" />
<input type="color" name="" id="" value="#F7CC60" />
<label for="user_pass">비밀번호 : </label>
<input
type="password"
name="user_pass"
id="user_pass"
required
placeholder="비밀번호 6자리를 입력해주세요."
/>
<input type="file" name="" id="" />
enctype="multipart-formdata"
로 정의하여 사용해야 하고 method방식은 POST로 사용한다.
<input type="checkbox" name="nation" value="korea" checked="checked" />한국
<input type="checkbox" name="nation" value="japan" />일본
<label>
<input
type="checkbox"
name="nation"
value="korea"
checked="checked"
/>동의하시겠습니까?</label
>
checkd
속성을 이용하면 선택된 상태가 된다.
<input type="radio" name="rdo" id="" /> 고양이
<input type="radio" name="rdo" id="" /> 강아지
<label><input type="radio" name="gender" id="" checked /> 남자</label>
<label><input type="radio" name="gender" id="" /> 여자</label>
list 속성과 datalist 요소를 사용하면 option의 값을 연결해서 사용할 수 있다.
<label
>이동할 웹주소 <input type="url" list="url_ex" name="user_url" id="user_url"
/></label>
<datalist id="url_ex">
<option value="http://naver.com">네이버</option>
<option value="http://daum.net">다음</option>
</datalist>
<option></option>
요소를 사용해 항목을 만든다.
<label>전화번호 <input type="tel" name="user_tel" id="user_tel" /></label>
<datalist id="user_tel">
<option value="111">111</option>
<option value="112">112</option>
<option value="114">114</option>
<option value="119">119</option>
</datalist>
<label for="user_hobby">취미</label>
<select name="user_hobby" id="user_hobby" required>
<option value="0">없음</option>
<option value="1" selected>축구</option>
<option value="2" label="basketball" disabled>농구</option>
<option value="3">독서</option>
<option value="3">영화관람</option>
</select>
select
는 드롭다운 메뉴라고 불리고 여러 항목 중에서 택일할 때 사용한다.select
와 option
은 함께 사용한다.select
는 선택 컨트롤을 option
요소는 옵션 항목을 표시한다.name
: 서버에 전송할 때 필요한 값multiple
: 여러 개의 선택이 가능한 속성disabled
: 비활성화required
: 필수입력size
: 화면에 보여질 옵션 갯수 설정
내가 처음 개발 회사에 입사를 했을 때 뭐든 기초가 중요하다고 했던 팀장님의 말씀이 최근 들어 무슨 말인지 잘 알 것 같다.