포스트

07. 입력 관련 태그

1. input 태그

1
2
✔ 웹 문서에서 사용자가 입력할 수 있는 양식을 제공하는 태그
✔ inline형식(모든 input태그가 inline형식)

1) text 관련 input 태그

  • (1) type=”text”

    1
    2
    3
    4
    5
    
    ✔ 한 줄 짜리 문자열(텍스트)를 입력할 수 있는 입력 상자
    ✔ input 태그의 type 기본값
      
    <input type="text">
    <input>
    

    1
    2
    3
    4
    5
    6
    7
    
    [속성]
    ✔ size : 입력상자 크기
    ✔ maxlength : 입력 받는 텍스트의 최대 길이
    ✔ placeholder : 입력 상자에 작성될 내용을 설명
    ✔ value : 모든 input 태그의 type에서 사용 가능한 속성 input 태그에 들어갈 초기값을 지정
      
    아이디 : <input size="15" maxlength="10" palceholder="아이디 입력">
    

  • (2) type=”password”

    1
    2
    3
    
    ✔ 비밀번호 입력 상자(입력되는 텍스트를 가려준다)
      
    비밀번호 : <input type="password" placeholder="비밀번호 입력"> <br>
    

  • (3) type=”url” / type=”tel” / type=”email”

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    💡 url, email, tel은 단독 사용시 type="text"와 똑같지만 form 내부에 
    사용되면 입력된 값이 용도에 맞는 값인지 유형성 검사를 간단히 진행한다
      
    ✔ 주소 입력 시 사용하는 입력 상자
    ✔ 전화번호 입력 시 사용하는 입력 상자
    ✔ 이메일 입력 시 사용하는 입력 상자
      
    홈페이지 : <input type="url" value="https://"> <br>
    전화번호 : <input type="tel" size="30" placeholder="'-'기호 포함"> <br>
    이메일 : <input type="email" size="30" placeholder="이메일 입력"> <br>
    

2) 숫자 관련 input 태그

  • (1) type=”number”

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    ✔ 숫자만 입력할 수 있는 입력 상자
    ✔ 브라우저에 따라 스핀박스가 표시되기도 한다
      
    [숫자 관련 태그 공용 속성]
    ✔ min : 최소값
    ✔ max : 최대값
    ✔ step : 증가 / 감소 단계 지정
      
    점수 입력 : <input type="number" min="0" max="100" step="10" value="50">
    

  • (2) type=”range”

    1
    2
    3
    
    ✔ 슬라이드 바를 이용해서 숫자 지정(단독 사용 X, JS와 함께 사용)
    
    <input type="range" min="0" max="50" step="10">
    

3) 날짜 /시간 관련 input 태그

1
2
3
4
5
6
7
  <ul>
    <li><input type="date"></li>
    <li><input type="month"></li>
    <li><input type="week"></li>
    <li><input type="time"></li>
    <li><input type="datetime-local"></li>
  </ul>

4) radio와 checkbox

1
2
3
4
5
6
7
8
9
10
  ✔ 여러 관련된 값을 묶어서 선택하는 경우에 사용하는 input type
  ✔ (중요!!) 묶음으로 다루려는 input 태그들은 반드시 같은 name 속성 값을 가져야 한다!

  [name 속성]
  1) radio, checkbox 뿐만 아니라 input 태그들 중 관련된 것들을 묶어서
  부를 때(묶음으로 다룰 때) 사용(== 그룹 이름)
  2) 서버쪽에 제출되는 input 태그 값의 이름을 지정(form 태그와 같이 사용)

  [checked 속성]
  ✔ radio 또는 checkbox에 checked 속성이 설정된 곳은 기본으로 체크가 되어 있다.
  • (1) type=”radio”

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    ✔ 같은 name 속성으로 묶인 것들 중에 하나만 선택 가능. 중복 선택 불가
        
    [id 속성]
    ✔ 식별자(하나의 HTML문서에서 중복 금지)
        
    팀 선택<br>
    <label>A팀</label> <input type="radio" name="team" id="a-team">
    <label>B팀</label> <input type="radio" name="team" id="b-team">
    <label>C팀</label> <input type="radio" name="team" id="c-team">
    

  • (2) type=”checkbox”

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    ✔ 같은 name 속성으로 묶인 것들 중에 하나만 선택 가능. 중복 선택 불가
        
    [id 속성]
    ✔ 식별자(하나의 HTML문서에서 중복 금지)
        
    [for 속성]
    label 태그에 설정 시 label을 클릭해도 check가 되는 속성
        
    취미 선택<br>
    <label for="baseball">야구</label> <input type="checkbox" name="hobby" id="baseball">
    <label for="soccer">축구</label> <input type="checkbox" name="hobby" id="soccer">
    <label for="basketball">농구</label> <input type="checkbox" name="hobby" id="basketball">
    

5) 기타 input 태그

1
2
3
4
5
6
7
8
9
10
  type="color" 
  <input type="color"> <br>

  type="file"
  <input type="file"><br>

  type="hidden"
  <input type="hidden" value="값이 있었는데 없었어요"><br>
  <!-- 화면상에는 보이지 않지만 존재하는 input 태그.
  -> 필요한 값이지만 화면에 보일 필요가 없을 때(ex. 회원번호) -->

2.form 태그

1
2
3
4
5
6
7
8
9
✔ div와 같은 영역(block 형식)
✔ 내부에 작성된 input 태그의 값을 서버로 전달하는 역할

[속성]
1) action : 내부에 작성된 값을 전달할 서버 또는 페이지 주소를 작성. 기본값 : 현재 페이지 주소
2) method(방식) : 서버로 데이터 전달하는 방식을 지정하는 속성 (get방식 & post방식)
3) name : form 태그의 이름을 지정하여 각각의 form 태그 구분(JS 사용)
4) target : action에 지정된 주소를 현재 탭 / 새 탭 중 어디서 열지 결정
5) required : 필수입력사항으로 지정

1) form 예시 1

1
2
3
<form>
	아이디 입력 : <input type="text" name="id">
</form>

1
2
3
4
5
6
주소?id=user001

  ? : 제출된 값을 나타내는 문자열의 시작부분
  id : input 태그 name 속성 값
  user001 : input 태그에 입력한 값(value)
  id=user001 : name 속성 값이 'id'인 input 태그에 작성된 값 'user001'

2) form 예시 2

1
2
3
4
5
6
<form action="08_하이퍼링크관련태그.html">
  이름 : <input type="text" name="inputName"> <br>
  나이 : <input type="number" name="inputAge"> <br>

  <button type="submit">제출</button>
</form>

3) form 예시 3

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<form action="07_이미지관련태그.html" target="_blank">
  팀 선택 <br>
  <label for="aa-team">A팀</label> 
  <input type="radio" name="team" id="aa-team">
  /
  <label for="bb-team">B팀</label> 
  <input type="radio" name="team" id="bb-team" value="B">
  /
  <label for="cc-team">C팀</label>
  <input type="radio" name="team" id="cc-team" value="C">

  <br><br><br>

  <label for="baseball-a">야구</label>
  <input type="checkbox" name="hobby" id="baseball-a">

  <label for="soccer-b">축구</label>
  <input type="checkbox" name="hobby" id="soccer-b" value="축구">

  <label for="basketball-c">농구</label>
  <input type="checkbox" name="hobby" id="basketball-c" value="농구">

  <br><br>

  <button type="submit">제출</button>
</form>

1
2
3
radio, checkbox 선택 시 전달되는 값이 'on'으로 나오는 경우
→ 선택된 input 태그에 아무런 값이 작성되어 있지 않을 때(value가 없을 때)
  체크는 되었다라는 것을 인식해 'on'이라는 단어로 표현

3.버튼을 나타내는 input 태그

1) button 태그

1
2
3
4
5
6
7
8
9
10
11
✔ input 태그 중 type="submit", type="reset", type="button"이 있지만 버튼의 사용량이 많아져 button 태그를 만들어 내게 되었다.
따라서 최근에는 input 태그 type으로는 잘 사용하지 않는다.

<button type="submit">제출</button>
<button type="reset">초기화</button>
<button type="button" id="btn">그냥 버튼</button>

<script> //자바 스크립트 작성 영역
  document.getElementById("btn").addEventListener("click", function(){
    alert("버튼 클릭됨"); })
</script>

1
✔ 아무런 기본 기능이 없는 버튼은 JS를 이용해서 원하는 기능을 추가 할 수 있다

4.기타

1) fieldset / legend

1
2
3
4
5
6
7
8
9
10
11
12
✔ fieldset : 테두리를 만들어 그룹을 구분하는 영역
✔ legend : fieldset 테두리에 이름을 부여

<form action="01_글자관련태그.html">
  <fieldset>
    <legend>회원가입</legend>
    아이디 : <input type="text" name="memberId"> <br>
    비밀번호 : <input type="password" name="memberPw"> <br>

    <button type="submit">가입하기</button>
  </fieldset>
</form>

2) textarea 태그

1
2
3
4
5
6
7
8
9
10
✔ 여러 줄을 입력하기 위한 입력상자

<form action = "01_글자관련태그.html">
  <textarea row="5" column="70" style="resize : none" placeholder="placeholder도 작성 가능합니다">
      텍스트 작성중....
      제목 :
      내용 :
      작성자 :
  </textarea>
</form> 

1
✔ style="resize : none" 속성을 제거하면 textarea의 크기를 자유롭게 조절 가능하다

3) select 태그, option 태그

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
✔ select 제출 시
option 태그에 value가 있으면 : value 속성안에 작성된 값
option 태그에 value가 없으면 : <option></option> 사이에 작성된 내용이 제출된다

[selected 속성]
✔ select의 기본 값을 설정하는 속성

<form>
  <select>
    <option value="1">선택1</option>
    <option value="2">선택2</option>
    <option value="3" selected>선택3</option>
    <option value="4">선택4</option>
    <option value="5">선택5</option>
  </select>
</form>