Web - Front end 5. 웹 폼
Web - Front end 5. 웹 폼
* 웹 폼
웹 페이지를 통해서 사용자 입력을 받는 폼
웹 폼을 만들기 위한 태그들(ex - <input>, <textarea>, <select> 등)을 폼 요소 라고 한다.
로그인, 등록, 검색, 예약, 쇼핑 등의 다양한 웹서비스에서 사용자 입력을 받기 위해 사용
1) <form>
폼 요소들을 담는 태그
입력된 값들을 그룹으로 묶어주는 역할이며 필요에 따라 여러게를 사용할 수도 있다.
* 속성
name : 폼의 이름을 지정. 값을 처리할 내용의 그룹들을 구분하는데 사용. Javascript에서 사용
action : 폼 데이터를 처리할 웹 서버 응용프로그램 지정. submit 버튼이 눌리면 지정된 웹 서버에 연결해서 웹 서버 응용프로그램을 실행하고 폼 데이터를 전달.
method : 웹 서버로 전송되는 형식을 지시. (대표적인 방법 : get - 주소 입력창에 폼 데이터 출력 / post - 주소 입력창에 폼 데이터를 띄우지 않음)
enctype : 데이터의 인코딩 타입. 폼 데이터을 웹 서버로 전송할 때 암호화 방식 지정
target : 웹 서버 응용프로그램으로부터 전송받은 데이터(HTML문서나 이미지)를 출력할 윈도우 지정
* 폼 요소의 종류
2) 텍스트 입력 <input type="text | password"> , <textarea>
<input type="text"> : 한 줄 텍스트를 입력 받음
<input type="password"> : 특별히 암호를 입력받음. *으로 화면에 표시
* 속성
name : 요소의 이름 (or id)
maxlength : 입력할 수 있는 문자의 최대 개수
size : 입력 가능한 너비
value : 초기 택스트. 지워야 지워짐
placeholder : 입력하면 바로 지워지는 초기 텍스트. 입력할 정보의 형식을 살짝 보여주는 용도로 주로 사용.
list : 연결할 리스트 선택(<datalist> 와 연동해서 사용)
<textarea> : 여러줄의 텍스트를 입력받음
* 속성
cols : 열 개수
rows : 행 개수
name : 요소 이름
wrap : 자동 줄바꿈 처리 지정(off, hard, soft). 보통 default값으로 둠
<textarea></textarea> 사이에 초기 줄력값 입력
3) 데이터 목록을 가진 텍스트 입력 창 <datalist>
값을 입력 받을 수도 있고 리스트에서 선택할 수도 있다.
id 속성을 <input>태그의 type속성을 'text'로 하고 list와 연결시킨다.
<datalist> 안에 <option>태그로 데이터 항목 들을 나타낸다.
(<option> 태그의 value 속성에 항목 입력)
4) 텍스트 / 이미지 버튼 만들기
<input> 나 <button> 태그로 만들 수 있음
<button></button> 사이에 버튼에 출력할 문자열이나 이미지 입력
* 속성
type : 버튼의 종류
name : 버튼 이름
value : 버튼에 표시될 문자열
src : type 속성이 image 일때만 사용. 이미지 URL
* type 종류 : button, reset, submit, image(<input> 태그에만 있음)
button : 아무 기능 없는 버튼. Javascript 코드에 사용
submit : 폼 데이터를 웹 서버에 전송
reset : 폼에 입력된 내용을 모두 지우고 초기화
image : src 속성에 URL 지정해서 이미지 띄움. 아무 기능 없으며 button과 같음. <button> 태그를 이용하면 type 속성을 지정해서 reset이나 submit 기능을 가진 이미지 버튼을 만들 수 있음
5) 다중 선택 체크박스 <input type="checkbox">
여러개 선택 가능
사각형 체크박스 출력
* 속성
name : 요소 이름
value : 전달값
checked : 초기에 선택 상태로 출력
6) 라디오 버튼 <input type="radio">
같은 name 속성 안에서 하나만 선택 가능하다.
name 속성이 다르면 독립된 그룹으로 인식해서 여러개 선택할 수 있게 되니 주의해야 한다.
원형 라디오버튼 출력
* 속성
체크박스와 동일
7) 콤보박스 <select>
드롭다운 리스트에 목록 출력
목록을 선택하는 입력방식
<select> 태그로 콤보박스 전체를 표현하고 <option> 태그로 항목을 하나하나 표현한다.
* 속성 - <select>
name : 요소 이름
size : 콤보박스 창 크기(보일 수 있는 최대 항목 개수). 기본값은 1.
multiple : 다중 선택 가능
* 속성 - <option>
selected : 초기에 선택 상태로 출력
value : 전달값
8) 폼 요소 캡션 만들기 <label>
캡션은 입력을 받을때 입력 받을 항목의 이름을 말한다. 이전의 코드들 에서는 캡션은 그냥 텍스트로만 표시되었다. 이때 캡션과 폼 요소를 <label> 로 묶어주면 문서를 명료하게 표현할 수 있고 한 단위로 다룰 수 있다.
<label>로 묶으면 캡션을 클릭하면 입력창에 입력가능하게 되거나 선택형 요소의 경우에는 선택이 된다.
- <label>로 감싸는 방법 두 가지
(1) : <label>로 폼 요소 감싸기
캡션과 폼 요소를 <label></label> 사이에 넣는다.
(2) : 폼 요소에 ID속성을 지정하고 <label>의 for 속성에 해당 ID를 입력한다. 그리고 캡션을 <label></label> 사이에 넣는다.
8) 색 입력 <input type="color">
컬러 다이얼로그를 출력해서 색을 입력받는다.
* 속성
value : 초기값
onchange : 값이 변경되었을 때 실행할 Javascript코드 입력
(onchange속성의 Javascript코드는 해당페이지의 value값을 body의 색상에 적용해주는 코드다.)
9) 시간 정보 입력<input type="month | date | time | date time-local"
달, 주, 날짜, 시간을 쉽게 입력받을 수 있는 폼 요소다.
달력버튼을 클릭하면 달력이 펼쳐지고 원하는 날짜나 시간을 선택할 수 있다.
HTML5를 완벽하게 지원하지 않는 브라우저에서는 텍스트 창에 value값만 출력한다.
(사파리에서는 지원 안됨)
* 속성
value : 초기값
10) 스핀버튼과 슬라이드바 < input type="number">, <input type="range">
스핀버튼은 정교한 값, 슬라이드바는 대략적인 값을 입력할 때 사용
슬라이드바의 경우 <datalist>태그와 연결하면 슬라이드바 아래에 점을 찍어서 지점을 나눠줄 수 있다.
*속성
min : 최소값
max : 최대값
step : 증감 단위 값
value : 입력한 숫자 저장
11) 형식을 가진 텍스트 입력
HTML5에서는 email주소, URL, 전화번호 등 텍스트가 특정 형식에 맞게 입력 되었는지 검사하는 폼 요소를 제공한다.
<input type="email"> , <input type="url">, <input type="tel"> , <input type="search">
w3c규정에 맞도록 입력 되었는지 검사하고 잘못 입력되면 에러 메세지를 출력한다.
placeholder 속성을 이용하여 해당 형식을 미리 보여주는 것이 권장된다.
전화번호는 형식이 다양해서 유효성 검사를 진행하지 않는다.
<input type="search">는 유효성 검사는 하지 않고 입력창의 오른쪽 끝에 x가 표시되며 클릭하면 입력이 취소된다.
12) 폼 요소 그룹핑 하기 <fieldset>
<fieldset>태그로 폼 요소들을 묶으면 그룹을 둘러싸는 외곽선 박스와 제목을 출력한다.
<legend>태그로 그룹의 제목을 표시할 수 있다.
(사파리에서는 지원 안함)












댓글
댓글 쓰기