입력 양식 태그 <form>
<form> 태그는 사용자의 입력을 다른 페이지나 프로그램에 전달하기 위한 태그이다.
1. 속성
- action : 입력한 데이터가 전달될 url을 지정. (대상 = jsp, asp, php, 프로그램)
- method : 입력한 데이터를 전달하는 방식을 지정. GET(기본값)/POST
2. 전송 방식
- GET : 주소창에 입력한 데이터가 노출됨. 보안상 문제가 없는 짧은 데이터 전송에 적합.
- POST : 주소창에 입력한 데이터가 노출되지 않음. 길고, 보안상 문제가 있는 데이터 전송에 적합.
입력 태그 <input>
<input> 태그는 사용자의 입력값을 받기 위한 태그로, 사용자의 입력값은 모두 문자열로 취급되며(산술 연산 불가)
산술 연산을 할 경우 숫자로 변환해야 한다.
1. 기본 속성
- type : input 태그의 모양을 결정하는 속성.
- name : 전달할 데이터에 붙일 이름을 지정하는 속성.
- value : 전달할 데이터가 저장되는 속성. 화면에 보여지는 용도. 또는 버튼 type의 input 태그일 경우 출력하는 글자를 작성하는 속성. (버튼 type의 input은 value를 전달하지 않음)
2. type 속성의 값
- submit : 버튼. form 태그의 action 속성에 지정된 대상으로 input 태그의 name과 value를 전송.
- reset : 버튼. 한 form 태그에 소속된 모든 input 태그의 value를 초기화.
- text : 문자열 입력 형식. (기본 형식)
- password : 문자열 입력 형식. 입력 문자를 자동으로 '●'로 변경.
- hidden : 화면에 보이지 않는 형식.
- button : 버튼. 자바스크립트 코드와 연결하여 이벤트를 처리하는 형식.
- radio : 단일 선택용 입력 형식(Single-choice). 여러 요소 중 하나를 선택하는 용도로 사용. name 속성에 같은 값을 넣어서 하나로 그룹화함.
- checkbox : 다중 선택용 입력 형식(Multiple-choice). 여러 요소 중 여러개를 선택하는 용도로 사용. name 속성에 같은 값을 넣어서 하나로 그룹화함.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<h1>로그인</h1>
<form action="">
ID : <input type="text" name="id" value=""> <br>
PWD : <input type="password" name="pwd" value=""> <br>
<input type="hidden" name="hd" value="숨긴 데이터"> <br>
<input type="button" value="버튼" onclick="alert('버튼!!!')"> <br>
<button onclick="alert('버튼2누름')">버튼2</button>
<input type="submit" value="전송"> <br>
<input type="reset" value="초기화"> <br>
</form>
<hr>
<form action="">
<fieldset>
<legend>지금 먹고 싶은 음식은?</legend>
<input type="radio" name="food" value="tang">탕수육<br>
<input type="radio" name="food" value="gal">갈비탕<br>
<input type="radio" name="food" value="don">돈까스<br>
</fieldset>
</form>
<hr>
<h2>다중 선택</h2>
<form action="">
<fieldset>
<legend>좋아하는 반려동물은?</legend>
<input type="checkbox" name="pet" value="cat">고양이<br>
<input type="checkbox" name="pet" value="dog">강아지<br>
<input type="checkbox" name="pet" value="rab">토끼<br>
<input type="submit" value="전송">
</fieldset>
</form>
</body>
</html>
- date : 년-월-일 단위로 날짜를 입력하는 형태.
- month : 년-월 단위로 날짜를 입력하는 형태.
- week : 년-주 단위로 날짜를 입력하는 형태.
- time : 시간 입력 형태.
- datetime-local : 년-월-일-시간 단위로 입력하는 형태.
- color : 색상 선택창을 출력하여 원하는 색상을 선택/입력.
- range : 특정 범위의 숫자를 선택하여 입력하는 형태. min/max 속성으로 하한/상한 설정.
- file : 업로드용 파일을 선택할 수 있는 형태. 파일 선택창이 뜸. multiple 속성으로 여러 파일을 한 번에 선택.
- email : 이메일 형식으로 입력을 제한하는 형태.
- url : 사이트 주소 형식으로 입력을 제한하는 형태.
- tel : 전화번호 형식으로 입력을 제한하는 형태. pattern 속성으로 형식을 지정. pattern 속성으로 형식을 지정. pattern="\d{2,3}-\d{3,4}-\d{4}" -> 2~3자리-3~4자리-4자리
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>날짜와 시간 입력</title>
</head>
<body>
<h2>날짜와 시간 입력 형식</h2>
<form action="">
<p>생일입력 : <input type="date" name="birth"></p>
<p>연월입력 : <input type="month" name="dmon"></p>
<p>연주입력 : <input type="week" name="dweek"></p>
<p>시간입력 : <input type="time" name="dtime"></p>
<p>날짜시간 : <input type="datetime-local" name="dlocal"></p>
<p><input type="submit" value="전송"></p>
</form>
<hr>
<h2>다양한 입력 양식</h2>
<form action="">
<h3>입력 양식1</h3>
<p>색상 : <input type="color" name="color"></p>
<p>숫자 : <input type="number" name="num" min="0" max="100"></p>
<p>범위 : <input type="range" name="range" min="-100" max="100"></p>
<p>파일 선택 : <input type="file" name="file" multiple></p>
<p><input type="submit" value="전송"></p>
</form>
<hr>
<form action="">
<h3>입력 양식2</h3>
<p>이메일 : <input type="email" name="email"></p>
<p>사이트 : <input type="url" name="url"></p>
<p>전화번호 : <input type="tel" name="tel" pattern="\d{2,3}-\d{3,4}-\d{4}"></p>
<p><input type="submit" value="전송"></p>
</form>
</body>
</html>
3. 주요 속성
- readonly : 읽기 전용. 수정할 수 없도록 지정하는 속성. 반드시 value 값을 넣을 것. submit으로 전송 가능.
- disabled : 요소를 비활성화 상태로 변경하는 속성. submit으로 전송 불가.
- size : text 타입의 input 태그의 가로 길이(너비)를 지정. 입력 문자의 개수를 제한하지는 않는다. 'M'의 너비 기준으로 함. size="20" -> 20글자가 들어가는 공간 너비.
- maxlength : 입력 문자의 개수를 제한하는 속성.
- placeholder : 힌트 글을 출력하는 속성.
- required : input 요소를 필수 입력 요소로 만드는 속성.
- autofocus : 페이지가 열릴 때(또는 새로 고침 할 때) 처음으로 입력받는 input 요소를 지정하는 속성.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>input 태그 주요 속성</title>
</head>
<body>
<form action="">
<h3>readonly</h3>
<p><input type="text" name="t1" value="이 내용은 변경 불가!" readonly></p>
<h3>disabled</h3>
<p><input type="text" name="t2" value="이 내용은 변경 불가!" disabled></p>
<h3>size</h3>
<p><input type="text" name="t3" size="10"></p>
<h3>maxlength</h3>
<p><input type="text" name="t4" maxlength="5" ></p>
<h3>placeholder</h3>
<p><input type="text" name="t5" placeholder="여기에 입력하세요" ></p>
<h3>required</h3>
<p><input type="text" name="t6" required></p>
<h3>autofocus</h3>
<p><input type="text" name="t7" autofocus></p>
<p><input type="submit" value="전송"></p>
</form>
</body>
</html>
기타 입력 태그
1. textarea
여러 줄의 문장(문자열)을 입력받는 요소. 시작 태그와 종료 태그 사이의 값을 전송. value는 안 씀.
크기 지정 => rows : 세로 길이(줄 수) / cols : 가로 길이(글자 수) / style="resize: none;" : 사이즈 조절 버튼 없앰.
2. select
선택 목록을 출력하는 요소. <option> 태그(항목 출력 태그)와 같이 사용.
<option> 태그의 value 값이 전송된다. (name은 select에 작성)
3. datalist
input + select 요소. 일종의 자동완성 기능처럼 동작.
4. label
특정 요소의 레이블을 정의하는 요소. 요소의 선택(클릭) 영역을 확장하는 데에 사용.
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>텍스트 영역</title>
</head>
<body>
<form action="">
<h3>아무 내용이나 많이 작성하세요~~~</h3>
<textarea name="tarea" cols="30" rows="10"
style="resize: none;">이건 처음부터 나올 내용</textarea>
</form>
<hr>
<h2>전화번호 입력</h2>
<form action="">
<select name="nums">
<option value="kt">kt</option>
<option value="skt" selected>skt</option>
<option value="lg">lg</option>
<option value="etc">etc</option>
</select>
</form>
<hr>
<h2>자동차 브랜드(다중선택)</h2>
<form action="">
<select name="cars" multiple size="2">
<option value="hy">현대</option>
<option value="kia">기아</option>
<option value="bmw">BMW</option>
<option value="au">아우디</option>
</select>
</form>
<hr>
<h2>datalist</h2>
<form action="">
<input list="brs" name="brws">
<datalist id="brs">
<option value="edge">엣지</option>
<option value="crome">크롬</option>
<option value="safari">사파리</option>
<option value="opera">오페라</option>
</datalist>
</form>
</body>
</html>
참고
1. 이벤트란?
컴퓨터에 의해 감지되고 처리될 수 있는 동작이나 사건. 프로그램은 사용자가 발생시킨 이벤트를 처리하는 명령어 묶음.
이벤트를 처리하는 작업을 '이벤트 핸들링'(Event Handling)이라고 한다. 마우스 클릭, 마우스 무브, 키보드 눌림 등
2. 버튼 생성 방법
- input 태그의 type을 button으로 하여 생성.
- button 태그로 생성. form 태그 안에 button 태그로 만들 버튼은 input 태그 중 type이 submit인 버튼의 동작을 수행하기 때문에, type="button"을 넣어줌.
'HTML' 카테고리의 다른 글
5. 영역 처리/시맨틱 (0) | 2022.08.11 |
---|---|
4. 오디오/비디오/특수문자 (0) | 2022.08.11 |
3. List 및 Table (0) | 2022.08.11 |
2. 기본적인 태그 알아보기 (0) | 2022.08.11 |
1. HTML 기초 (0) | 2022.08.11 |