입력양식 만들기
#01. 기본 입력 양식
- XHTML까지 사용되던 입력 양식 태그
#02. 텍스트 입력 받기
입력 양식을 표시하는
<input>
태그- name속성과 id 속성
- name 속성은 웹 프로그램과 연계되는 속성으로 한페이지 안에서 고유한 값을 명시해야 한다.
- id 속성은 해당 페이지에서 그 요소를 식별하기 위한 값으로 고유한 값을 명시해야 한다.
- id값과 name값은 서로 동일하게 지정해도 무관하다.
- type 속성에 따라 화면에 표시되는 요소의 종류가 결정된다.(text, password, hidden 등)
- value 속성은 해당 요소에 기본적으로 작성되어 있을 값을 기술한다.
- 텍스트를 입력 받는 요소의 경우 maxlength 속성을 사용하여 최대 입력 가능한 글자 수를 제한할 수 있다.
<input name="이름(영어)" id="식별자(영어)" type="종류" value="기본값" maxlength="숫자" />
- name속성과 id 속성
요소의 제목 표시하기
<label>
태그는 입력 요소 앞이나 뒤에서 표시되는 제목을 구성한다.<label>
태그와<input>
태그의 순서는 변경될 수 있으며, 반드시 함께 연달아 표시될 필요는 없다.
<labelfor="input요소에 부여한 id값">...제목...</label> <inputname="이름(영어)"id="식별자(영어)"type="종류" [value="기본값"][maxlength="숫자"][checked]/>
장문을 입력하기 위한 요소
<label for="input요소에 부여한 id값">...내용...</label> <textarea name="이름(영어)"id="식별자(영어)"[maxlength="숫자"]> ...기본적으로 작성되어 있을 내용 ... </textarea>
placeholder 속성
<input name="이름(영어)"id="식별자(영어)"type="종류" [value="기본값"][maxlength="숫자”] [placeholder="설명글"] />
- placeholder 속성은 사용자가 직접 값을 입력하는 형태의
<input>
요소에 지정하여 값이 입력되기 전에 보여질 설명글을 표시한다. - HTML5부터 지원한다.
- placeholder 속성은 사용자가 직접 값을 입력하는 형태의
01-텍스트입력하기
<!DOCTYPE html>
<html lnag="ko">
<!-- 페이지 설정 부분 -->
<head>
<!--저장시에 사용된 인코딩(파일의 저장 형식) 값을 웹 브라우저에게 알려준다.- ANSI(euc-kr), UTF-8 -->
<meta charset="utf-8" />
<!--IE의 호환성 보기 모드 금지-->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<!-- 스마트 장치에서의 해상도 균일화 처리-->
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
<!--브라우저에 표시될 문서 제목-->
<title>My Web Page</title>
</head>
<!-- 브라우저에 보여질 부분 -->
<body>
<!-- 입력 내용을 감싸기 위한 부분-->
<form>
<!--입력 내용에 대한 그룹을 명시하는 부분 -->
<fieldset>
<!-- 그룹의 제목-->
<legend>내용 입력하기</legend>
<!--입력 요소 배치-->
<div>
<label for="user_id">아이디</label>
<input type="text" name="user_id" id="user_id" maxlength="20" placeholder="아이디를 입력하세요." />
</div>
<div>
<label for="user_name">회원이름</label>
<input type="text" name="user_name" id="user_name" maxlength="20" placeholder="이름을 입력하세요" />
</div>
<div>
<label for="user_pw">비밀번호</label>
<input type="password" name="user_pw" id="user_pw" maxlength="20" placeholder="비밀번호를 입력하세요." />
</div>
<div>
<label for="memo">자기소개</label>
<textarea name="memo" id="memo" maxlength="100" placeholder="간단한 소개 내용을 입력하세요."></textarea>
</div>
<div>
<label for="data">숨겨진 항목</label>
<input type="hidden" name="data" id="data" value="숨겨진 데이터" />
</div>
</fieldset>
</form>
</body>
</html>
출력결과
#02. 선택항목의 제시
- type=“radio” or type=“checkbox”
- 여러 개의 항목 중 한 가지 혹은 복수의 선택을 할 수 있는 요소를 구성한다.
- Radio : 여러 항목 중 한 가지만 선택 가능함
- Checkbox : 여러 항목 중 복수로 선택 가능함
- Radio나 Checkbox는 하나의 그룹으로 묶기위해 name 속성의 값을 동일하게 명시해야 한다.
- checked 속성을 명시할 경우 기본적으로 체크되어 화면에 표시된다.
- 여러 개의 항목 중 한 가지 혹은 복수의 선택을 할 수 있는 요소를 구성한다.
02-항목선택하기.html
<!DOCTYPE html>
<html lnag="ko">
<!-- 페이지 설정 부분 -->
<head>
<!--저장시에 사용된 인코딩(파일의 저장 형식) 값을 웹 브라우저에게 알려준다.- ANSI(euc-kr), UTF-8 -->
<meta charset="utf-8" />
<!--IE의 호환성 보기 모드 금지-->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<!-- 스마트 장치에서의 해상도 균일화 처리-->
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
<!--브라우저에 표시될 문서 제목-->
<title>My Web Page</title>
</head>
<!-- 브라우저에 보여질 부분 -->
<body>
<form>
<fieldset>
<legend>취미 선택하기</legend>
<div>
<!--체크박스-->
<input type="checkbox" name="hobby" id="hobby1" value="축구" checked />
<label for="hobby1">축구</label>
<input type="checkbox" name="hobby" id="hobby2" value="농구" />
<label for="hobby2">농구</label>
<input type="checkbox" name="hobby" id="hobby3" value="야구" />
<label for="hobby3">야구</label>
</div>
</fieldset>
<br />
<fieldset>
<legend>성별 선택하기</legend>
<div>
<!-- 라디오 버튼 -->
<input type="radio" name="gender" id="gender_m" value="M" checked />
<label for="gender_m">남자</label>
<input type="radio" name="gender" id="gender_w" value="W" />
<label for="gender_w">여자</label>
</div>
</fieldset>
</form>
</body>
</html>
출력결과
#03. 입력양식 만들기
1) 드롭다운의 기본 형식
<select>
태그로 드롭다운의 박스를 구성하고,<option>
태그로 선택 항목을 구성한다.- multiple 속성이 지정된 경우 Ctrl이나 Shift키를 누른 상태에서 두 개 이상의 항목을 선택할 수 있게 된다.(잘 사용되지 않는 속성)
<option>
태그- value 속성값: 해당 항목이 선택되었을 때 프로그램이 인식할 내용
- selected 속성: 해당
<option>
요소를 기본적으로 선택 상태에 있게 한다. 여러 개의<option>
요소가 이 속성을 갖고 있는 경우 맨 마지막 항목이 선택된 상태로 표시된다.
<labelfor="id값 연결">...내용...</label>
<selectname="웹 프로그램 식별값" id="고유 식별값" [multiple]>
<option[value="선택시 값"][selected]>화면 표시 내용</option> ...option태그 반복 사용... </select>
03-드롭다운.html
<!DOCTYPE html>
<html lnag="ko">
<!-- 페이지 설정 부분 -->
<head>
<!--저장시에 사용된 인코딩(파일의 저장 형식) 값을 웹 브라우저에게 알려준다.- ANSI(euc-kr), UTF-8 -->
<meta charset="utf-8" />
<!--IE의 호환성 보기 모드 금지-->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<!-- 스마트 장치에서의 해상도 균일화 처리-->
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
<!--브라우저에 표시될 문서 제목-->
<title>My Web Page</title>
</head>
<!-- 브라우저에 보여질 부분 -->
<body>
<form>
<fieldset>
<legend>이동통신사 선택하기</legend>
<div>
<!-- 드롭다운 (싱글타입) -->
<label for="telecom">이동통신사 선택</label>
<select name="telecom" id="telecom">
<option>----- 선택하세요 -----</option>
<option value="SKT">SKTelecom</option>
<option value="KT">KT</option>
<option value="U+">LG U+</option>
</select>
</div>
</fieldset>
<br />
<fieldset>
<legend>스마트폰 운영체제 선택하기</legend>
<div>
<!-- 드롭다운 (멀티타입) -->
<label for="smartphone">스마트폰 운영체제</label>
<select name="smartphone" id="smartphone" multiple>
<option value="android"> 안드로이드</option>
<option value="iOS">iOS</option>
<option value="window">Window</option>
</select>
</div>
</fieldset>
</form>
</body>
</html>
출력결과
#04. 파일 첨부하기
파일 찾아보기 버튼 표시하기
- type=“file” 요소는 웹 프로그램으로 파일을 전송할 수 있도록 찾아보기 버튼을 표시하며, 한 번에 하나의 파일만 첨부 가능하다.
- 요소가 사용될 경우에는 반드시
<form>
태그에 enctype=“multipart/form-data” 속성이 명시되어야 한다. - 브라우저의 보안을 위해 이 요소에서는 value 속성값을 지정할 수 없다.
<formenctype="multipart/form-data"> <inputname="이름(영어)"id="식별자(영어)"type="file"/> </form>
04-파일첨부하기.html
<!DOCTYPE html>
<html lnag="ko">
<!-- 페이지 설정 부분 -->
<head>
<!--저장시에 사용된 인코딩(파일의 저장 형식) 값을 웹 브라우저에게 알려준다.- ANSI(euc-kr), UTF-8 -->
<meta charset="utf-8" />
<!--IE의 호환성 보기 모드 금지-->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<!-- 스마트 장치에서의 해상도 균일화 처리-->
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
<!--브라우저에 표시될 문서 제목-->
<title>My Web Page</title>
</head>
<!-- 브라우저에 보여질 부분 -->
<body>
<form enctype="multipart/form-data">
<fieldset>
<legend>파일첨부</legend>
<div>
<label for="photo">사진선택</label>
<input type="file" name="photo" id="photo" />
</div>
</fieldset>
</form>
</body>
</html>
출력결과
#05. 데이터 전송하기
버튼 표시하기
- type 속성에 따라 버튼의 특성이 변경된다.
- submit ->
<form>
영역 안에서 사용자가 입력한 내용들을 웹 프로그램에게 전송한다. - button -> 아무런 동작이 없다. 일반적으로 Javascript와 연결하여 특정 동작을 구현하기 위해 사용한다. (ex: 아이디 중복검사, 우편번호 찾기 등)
- reset -> 사용자가 입력한 모든 내용을 삭제한다.
- image -> 버튼에 이미지를 표시한다. 기본 특성은 submit과 동일한다.
- submit ->
- type속성이 image인 경우 value 속성 대신 src속성이 사용된다.
<input type="submit|button|reset|image" value="버튼 표시 텍스트" [src="이미지경로"]/>
- type 속성에 따라 버튼의 특성이 변경된다.
사용자의 입력값을 웹 프로그램으로 전송하기
<form>
요소 내의 submit 버튼이 눌러지면 현재<form>
안에 사용자가 입력한 모든 내용들이 action 속성에서 명시하는 웹 프로그램 페이지로 전송된다.- 이 웹 프로그램은 사용자의 입력값을 전달받아 입력, 수정, 삭제 등의 처리를 수행하게 된다. 이러한 처리는 ASP, JSP, PHP 등의 웹 프로그램으로 구현한다.
- enctype 속성은 입력 양식 안에 파일 첨부 기능이 포함되어 있는 경우 반드시 지정해야 한다.
- method 속성은 전송방식을 의미한다.
- get: 입력된 모든 내용이 URL에 포함되어 전송된다.
- post: 입력된 내용이 URL에 노출되지 않는다.
<formmethod="post|get" action="웹프로그램 URL" [enctype="multipart/form-data"]> … 입력 내용 구성하기 … </form>
05-데이터전송.html
<!DOCTYPE html>
<html lnag="ko">
<!-- 페이지 설정 부분 -->
<head>
<!--저장시에 사용된 인코딩(파일의 저장 형식) 값을 웹 브라우저에게 알려준다.- ANSI(euc-kr), UTF-8 -->
<meta charset="utf-8" />
<!--IE의 호환성 보기 모드 금지-->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<!-- 스마트 장치에서의 해상도 균일화 처리-->
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
<!--브라우저에 표시될 문서 제목-->
<title>My Web Page</title>
</head>
<!-- 브라우저에 보여질 부분 -->
<body>
<form name="form1" method="get" action="result.html">
<fieldset>
<legend>이름입력하기</legend>
<div>
<label for="user_name">이름: </label>
<input type="text" name="user_name" id="user_name" />
</div>
<div>
<input type="submit" value="입력완료" />
<input type="reset" value="다시작성" />
<input type="button" value="일반버튼" />
<input type="image" src="img/ok.png" alt="입력완료" />
</div>
</fieldset>
</form>
</body>
</html>
출력결과
#06. 새로운 입력 요소들
- HTML5부터는 입력값의 형태에 따라
<input>
태그의 type속성에 부여할 수 있는 종류가 다양해 졌다. - type값에 따라 모바일 환경에서의 기본 키보드 형태가 변경된다.
type 값 | 설명 |
---|---|
url | 웹 페이지의 URL을 입력할 수 있다. |
tel | 전화번호를 입력할 수 있다. |
number | 숫자값을 입력할 수 있다. 최소값을 위한 min속성과 최대값을 위한 max속 성, 입력 단계 설정을 위한 step속성을 추가적으로 사용한다. |
range | 슬라이드 바 형태로 수치값을 선택할 수 있다. 최소값을 위한 min속성과 최 대값을 위한 max속성, 입력 단계 설정을 위한 step속성을 추가적으로 사 용한다. |
date | 날짜 형식의 값을 입력한다. |
time | 시간 형식의 값을 입력한다. |
emial | 이메일을 입력할 수 있다. |
search | 검색어를 입력하는 용도로 사용한다. |
- number 타입과 range 타입의 추가 속성
- input type=“number”와 input type=“range”는 공통적으로 수치값을 입력하기 위한 컴포넌트이기 때문에, 수치값의 최대값, 최소값, 입력가능한 값의 단계에 대한 추가적인 속성들이 필요하다.
속성명 | 설명 |
---|---|
max | 컴포넌트에 입력 가능한 최대값을 숫자로 설정한다. |
min | 컴포넌트에 입력 가능한 최소값을 숫자로 설정한다. |
step | 컴포넌트에 입력 가능한 값의 단계를 숫자로 설정한다. 예를 들어 5라고 입력하면 inputtype="number"는 5의 배수만 입력가능하다. 또한 inputtype="range"는 슬라이드를 왼쪽이나 오른쪽으로 드래그 할 때 마다 5단위로 값이 변하게 된다. |
<button>
태그<inputtype=”submit|reset|button”/>
을 대체하기 위한 새로운 태그.- 오직
- 기존에는
속성 | 값 | 설명 |
---|---|---|
type | submit,button,reset | 버튼의 종류를 지정한다. |
formaction | url | 데이터를 전송할 파일을 지정한다. |
formmethod | get,post | 전송 방식을 지정한다. |
formtarget | _blank,_self,_parent,_top | form의 target속성을 덮어 쓴다. |
06-html5-form.html
<!DOCTYPE html>
<html lnag="ko">
<!-- 페이지 설정 부분 -->
<head>
<!--저장시에 사용된 인코딩(파일의 저장 형식) 값을 웹 브라우저에게 알려준다.- ANSI(euc-kr), UTF-8 -->
<meta charset="utf-8" />
<!--IE의 호환성 보기 모드 금지-->
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<!-- 스마트 장치에서의 해상도 균일화 처리-->
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
<!--브라우저에 표시될 문서 제목-->
<title>My Web Page</title>
</head>
<!-- 브라우저에 보여질 부분 -->
<body>
<form name="form1">
<h1>회원가입</h1>
<fieldset>
<legend> 부가 정보 </legend>
<div>
<label for="user_mail">이메일: </label>
<input type="email" name="user_mail" id="user_mail" required="required" title="ex) student@gmail.com" />
</div>
<div>
<label for="user_homepage">홈페이지: </label>
<input type="url" name="user_homepage" id="user_homepage" />
</div>
<div>
<label for="user_age">나이: </label>
<input type="number" name="user_age" id="user_age" min="19" max="100" step="1" />
</div>
<div>
<label for="user_phone">연락처</label>
<input type="tel" name="user_phone" id="user_phone" />
</div>
<div>
<label for="point">목표성취도(%): </label>
<input type="range" name="point" id="point" value="50" min="0" max="100" />
</div>
<div>
<label for="birthday">생년월일: </label>
<input type="date" name="birthday" id="birthday" value="2014-11-30" />
</div>
<div>
<label for="worktime">출근시간: </label>
<input type="time" name="worktime" id="worktime" value="09:00" />
</div>
<div>
<label for="friend">추처인 아이디:</label>
<input type="search" name="friend" id="friend">
</div>
<div>
<input type="submit" value="hello" />
<button type="submit">hello</button>
</div>
</fieldset>
</form>
</body>
</html>
출력결과
'코딩 공부 > HTML + CSS' 카테고리의 다른 글
[HTML+CSS] 08_CSS구체성단위 (0) | 2020.05.09 |
---|---|
[HTML+CSS] 07_CSS시작하기 (0) | 2020.05.09 |
[HTML+CSS] 05_멀티미디어 (0) | 2020.05.09 |
[HTML+CSS] 04_표만들기 (0) | 2020.05.09 |
[HTML+CSS] 03_문장이나 단어를 강조하기 (0) | 2020.05.09 |