08. form tag (폼 입력 양식 요소)
input tag
- 사용자의 입력을 위한 다양한 type을 갖는 입력 필드를 생성
text type 속성
- 한줄짜리 입력창이 생기는 속성, 가장 기본적인 필드
- name : 서버에서 클라이언트의 요청 파라메터(데이터)로 인지 할 이름
- id : 클라이언트 페이지에서 태그를 인지할 id, 주로 javascript나 css 식별자로 사용됨
이름 : <input type="text" name="name" id="name">
<br> 전화번호 : <input type="tel" name="tel" id="tel" value="010-" size="13" maxlength="13"><br>
submit / reset type
- submit : 입력한 데이터를 서버 페이지로 전송하는 기능, 버튼 외에 javascript에서도 가능하다.
- reset : 입력한 데이터를 초기화 하는 기능, form단위로 리셋됨
<form method="GET" action="06_link.html">
아이디 : <input type="text" name="u_id">
<br> 비밀번호 : <input type="text" name="u_pass">
<br>
<input type="submit" value="로그인">
<input type="reset" value="다시입력">
</form>
password type
- 비밀번호 입력시 창에 ***으로 표시되고, 페이지가 벗어난 경우 자동으로 지워짐 (보완 강화!)
<form method="GET" action="06_link.html">
아이디 : <input type="text" name="u_id">
<br> 비밀번호 : <input type="password" name="u_pass"><br>
<input type="hidden" name="secretData" value="201720214">
<input type="submit" value="로그인">
</form>
hidden type
- 사용자에게 보여지지 않고 client 전달되었다가 다시 서버쪽으로 전달될수 있는 필드
- 주로 개발자 편의 요소로 활용되나 가끔 보안의 헛점이 될수 있음으로 주의 요구!
<input type="hidden" name="secretData" value="201720214">
checkbox type
- name을 동일한 그룹으로 설정하고, 다중 선택이 가능한 속성
- 향후 서버 사이드에서 제일 다루기 귀찮은 속성 -> 다르게 설계하는 것을 추천
<input type="checkbox" name="check1" value="java">자바
<input type="checkbox" name="check1" value="oracle">오라클
<input type="checkbox" name="check1" value="html" checked>HTML
radio type
- name을 동일한 그룹으로 설정하고, 단일 선택만 가능한 속성
<input type="radio" name="check2" value="java">자바
<input type="radio" name="check2" value="oracle">오라클
<input type="radio" name="check2" value="html" checked>HTML
file type
- 파일을 전송하기 위한 속성, 단일이나 다중 선택이 가능하다. -> 대부분 단일 처리를 추천
<input type="file" name="upfile1" id="upfile1">
<input type="file" name="upfile2" id="upfile2" multiple>
image type
- 사실상 이미지 버튼용도로 활용되는 기능
<input type="image" src="resources/image/kh_logo.jpg" onclick="javascript:alert('hello!');">
* 이미지 누르면 창뜨고 hello출력
button type
- 버튼 기능으로 활용, submit나 onclick 이벤트를 받아 처리 가능
<input type="button" value="확인" onclick="javascript:alert('hello!');">
type HTML5 양식 태그
- HTML5로 와서 적용된 태그로 IE나 올드한 version에서는 적용되지 않음
- HTML5의 표준을 잘 지키는 크롬계열의 브라우저(크롬, 웨일, 사파리, 엣지)에서는 사용 가능
date type
- 년,월,일 선택 가능한 양식 제공
<input type="date" name="date1"><br>
<input type="date" name="date2" min="2022-01-01" max="2022-12-30" value="2022-06-20"><br>
datetime-local type 속성
-년,월,일,시간 선택 가능한 양식 제공
<input type="month" name="date4"><br>
month type 속성
-년,월 선택 가능한 양식 제공
<input type="month" name="date4"><br>
week type 속성
주 선택 가능한 양식 제공
<input type="week" name="date5"><br>
time type 속성
시간 선택 가능한 양식 제공
<input type="time" name="date6"><br>
color type 속성
<input type="color" name="color1">
<input type="color" name="color2" value="#ff0000">
number type 속성
- 숫자 입력 양식
<input type="number" name="num" min="0" max="150">
range type 속성
- 슬라이드 막대로 숫자 지정 양식
<input type="range" name="range" min="0" max="150">
search type 속성
- 검색어 입력 양식(입력 후 x버튼 생김)
<input type="search" name="search">
email type 속성
- 데이터 전송 시 @를 확인하는 입력 양식
<form action="#">
<input type="email" name="mail">
<input type="submit" value="전송">
</form>
url type 속성
- 데이터 전송 시 주소인지(http://)를 확인하는 입력 양식
<form action="#">
<input type="url" name="url">
<input type="submit" value="전송">
</form>
placeholder 속성
- 사용자의 입력창에 hint(뒤에 회색 글씨)로 표시하는 기능
<input type="text" placeholder="아이디를 입력하세요.">
readonly 속성
- 읽기전용으로 사용자가 값을 변경할 수 없음
<input type="text" value="변경 불가한 값" readonly>
* 아예 입력이 안됨!
required 속성
- submit시 필수 입력값으로 지정하여 브라우저에서 체크하는 항목
<form action="#">
아이디 : <input type="text" name="u_id" required>
<br> 비밀번호 : <input type="password" name="u_pass" required>
<input type="submit" value="로그인">
</form>
로그인 누르면 주소창 바뀜!
label 태그
- 입력 값이 무엇인지 설명하고, click 시 id와 매칭하는 기능
<label for="id">아이디 : </label> <input type="text" name="id" id="id">
<label for="pw">비번 : </label> <input type="password" name="pw" id="pw">
<여러값을 표현하는 태그>
select 태그
- 드롭다운으로 목록을 선택하도록 유도하는 태그
option 태그
- select 태그에 종속되어 옵션을 값을 지정해주는 태그
optgroup 태그
- option값을 그룹할때 사용하는 태그로 선택되지 않음!
1. 기본적인 select 활용
<select name="lang" id="lang">
<option value="java">자바</option>
<option value="sql">SQL</option>
<option value="html" selected>HTML</option>
</select>
2. size를 활용하여 화면에 보여줄 항목의 개수를 지정
<select name="lang" id="lang" size="2">
<option value="java">자바</option>
<option value="sql">SQL</option>
<option value="html" selected>HTML</option>
</select>
*2개만 표시되고 스크롤 내리면 HTML있음!
3. multiple : 여러 항목을 지정 가능한 옵션
- ctrl을 누른채 활용해야함 -> 어렵다..
<select name="lang" id="lang" size="2" multiple>
<option value="java">자바</option>
<option value="sql">SQL</option>
<option value="html" selected>HTML</option>
</select>
*ctrl 누르면서 클릭하면 여러개 선택 가능!
4. optgroup을 활용하여 그룹핑하는 방법
<select name="lang" id="lang">
<optgroup label="Backend">
<option value="java">자바</option>
<option value="sql">SQL</option>
<option value="spring">스프링</option>
</optgroup>
<optgroup label="Frontend">
<option value="html" selected>HTML</option>
<option value="css" selected>css</option>
<option value="javascript" selected>javascript</option>
</optgroup>
</select>
datalist 태그
- input 태그의 리스트 형식을 제공하여 옵션을 자동을 입력하는 기능 (절대적이지 않음!!)
<input type="text" name="dlist2" list="dlist1">
<datalist id="dlist1">
<option value="html">HTML</option>
<option value="css">CSS</option>
<option value="js">자바스크립트</option>
</datalist>
textarea 태그
- 여러줄을 입력받을때 사용하는 태그,
cols:줄의 길이,
rows : 행의 길이를 표기 해야함
- 태그 시작과 끝 사이 공간이 실제 컨텐츠가 됨으로 공백 유지 필수!
<textarea name="" id="" cols="30" rows="10">
내용이 들어가는 공감으로 newline이나 ' '공백, \t이 다 먹히는 곳
</textarea>
*작성할때 내용을 지워야함!
prograss 태그
- 작업 진행 상태를 나타내는 태그
<progress max="100" value="45"></progress>
meter 태그
- 값이 차지하는 크기(게이지) 표시 ex) 디스크 사용량 등...
<meter min="0" max="10" value="5"></meter>
<meter min="0" max="10" low="3" high="7" value="5"></meter>
<meter min="0" max="10" low="3" high="7" value="1"></meter>
<meter min="0" max="10" low="3" high="7" value="8"></meter>
button 태그
- summit Type 대신 사용되는 태그, css 활용하기 좋음으로 자주 사용됨
<form action="#">
<input type="text" name="u_id" placeholder="아이디">
<input type="password" name="u_pass" placeholder="비밀번호">
<button type="submit">로그인</button>
</form>
"본 인터넷 사이트 내의 모든 이미지, 문구, 콘텐츠, 내용 등에 대한 저작권은 76beny에게 있습니다.
이를 무단으로 도용, 복사, 전재, 재배포, 2차 변형 등을 할 경우
민, 형사상 법적 조치 등 저작권법에 의거하여 처벌 받을 수 있습니다."