Koras02
Koras02코딩웹
Koras02
전체 방문자
오늘
어제
  • 분류 전체보기 (299)
    • 백엔드 (59)
      • nestjs (2)
      • Ruby (3)
      • PostgresQL (11)
      • MySQL (5)
      • Haskell (7)
      • Koa (3)
      • Java (3)
      • Python (5)
      • Rust (5)
      • MongoDB (2)
      • PHP (3)
      • Spring Boot (1)
      • redis (5)
      • deno (2)
    • 웹서버 (3)
      • nginx (1)
      • Apache (2)
      • Google Web Server (0)
    • 모바일개발 (5)
      • Figma (0)
      • React Native (2)
      • swift (0)
      • Flutter (3)
      • Kotlin (0)
    • 프론트 엔드 (158)
      • HTML (34)
      • CSS (7)
      • Javascript (35)
      • Angular (0)
      • Typescript (2)
      • React (58)
      • Vue (2)
      • GIT (6)
      • GraphQL (1)
      • Doker (4)
      • Go (8)
      • svelte (1)
      • gatsby (0)
    • etc. (47)
      • Notion (0)
      • TIL (24)
      • Algorithm (17)
      • Algorithm 개념 정리 (2)
      • Wiki (3)
      • Official document (1)
    • 웹개념 (12)
    • 변수정리 (1)
    • VSCode (2)
    • 포트폴리오 분석 (2)
      • React (2)
    • os (5)
      • 윈도우 (4)
      • Mac (0)
      • 가상머신 (0)
      • linux (1)
    • 응용프로그램언어 (2)
      • C (2)
      • C++ (0)
      • C# (0)
    • 블로그 운영관련 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
글쓰기

공지사항

  • [공지사항] 개발 이슈나 공식문서 업데이트 업로드 예정입니⋯

인기 글

태그

  • 프로그래머스
  • Java
  • 알고리즘
  • mysql
  • html5
  • Rust
  • koa
  • PostgreSQL
  • Til
  • html
  • React
  • CSS
  • 데이터 타입
  • 문자열
  • javascript
  • 하스켈
  • Haskell
  • go
  • redis
  • Flutter

티스토리

최근 댓글

최근 글

250x250
hELLO · Designed By 정상우.
Koras02

Koras02코딩웹

[HTML] HTML - 17.Form요소
프론트 엔드/HTML

[HTML] HTML - 17.Form요소

2023. 1. 19. 22:43
728x90

이번 시간에는 웹 페이지에서 사용자의 입력을 받는

Form 요소에 대해 알아보도록 하겠습니다.

 

Form 요소

웹 페이지에서 form 요소를 사용해 

사용자로부터 입력을 받을 수 있습니다.

 

또한, 사용자가 입력한 데이터를 서버로

보낼 시에도 form 요소를 사용합니다.

 

form 요소는 다음과 같은 문법을 사용합니다.

<form action="처리할페이지주소" method="get|post"></form>

action 속성은 입력받은 데이터를 

처리할 서버 상의 스크립트 파일의 

주소를 명시합니다.

 

이렇게 전달받은 데이터를 처리하는 

스크립트 파일을 폼 핸들러(form-handler)

라고 합니다. 

 

method 속성에는 입력받은

데이터를 서버에 전달하는 방식을

명시합니다.

 

따라서 사용자가 form 요소를 통해

입력한 데이터는 action 속성에 

 

명시된 위치로 method 속성의 방식을 

통해 전달됩니다.


method 속성

 

method 속성을 통해서 명시할 수 있는

form 요소의 전달 방식으로는 

 

GET 방식과 POST 방식으로 나뉩니다.

GET 방식은 주소에 데이터(data)를 추가해

전달하는 방식입니다.

 

따라서 주소 입력창에 그대로 나타나고

전송할 수 있는 데이터의 크기 또한

제한적 입니다. 

 

POST 방식은 데이터(data)를 별도로

첨부해 전달하는 방식입니다.

 

데이터가 외부에 드러나지 않고,

전송할 수 있는 데이터의 크기 또한 

제한이 없습니다.

 

따라서 보안성 및 활용성은 

GET 방식보다 좋습니다.


다양한 타입의 input 요소

 

HTML에서는 다양한 타입의 

input 요소를 사용해 사용자로부터 

입력을 받을 수 있습니다.

 

HTML에서 사용할 수 있는

대표적인 input 요소의 타입은

다음과 같습니다.

 

  • 텍스트 입력(text)
  • 비밀번호 입력(password)
  • 라디오 버튼(radio)
  • 체크박스(checkbox)
  • 파일 선택(file)
  • 선택 입력(select)
  • 문장 입력(textarea)
  • 버튼 입력(button)
  • 전송 버튼(submit)
  • 필드셋(fieldset)

 텍스트 입력

 

 <input>태그의 type 속성값을 "text"로

설정하면 사용자로부터 한 줄의

텍스트를 입력받을 수 있습니다.

<form action="/examples/media/request.php">
      검색할 내용을 입력해주세요
    <input type="text" name="search">
</form>

위 예제처럼 form 요소 그 자체는 

웹 페이지상에서 나타나지 않습니다.

 

하지만 form 요소에 포함된 다양한 

input 요소를 통해 사용자의 입력을 

받을 수 있습니다.


비밀번호 입력

 

<input> 태그의 type 속성값을

"password"로 설정하면, 사용자로부터

비밀번호를 입력받을 수 있습니다.

 

비밀번호를 입력받기 때문에 

화면 상에서는 입력받은 문자나 숫자 대신 

별표나 작은 원 모양이 표시됩니다.

<form>
    사용자: <br><input type="text" name="username"> <br>
    비밀번호: <br><input type="password"  name="password">
</form>

라디오 버튼

 

<input>태그의 type 속성값을 "radio"로

설정하면 사용자로부터 여러개 옵션 중 

단 하나의 옵션만을 입력받을 수 있습니다.

 

이때 서버로 정확한 입력을 전송하기 위해

반드시 모든 input 요소의 name 속성 값이

같아야 합니다.

<form>
     <input type="radio" name="lecture" value="html" checked> HTML <br>
     <input type="radio" name="lecture" value="css"> CSS <br>
     <input type="radio" name="lecture" value="javascript"> Javascript <br>
     <input type="radio" name="lecture" value="cpp"> C++
</form>

checked 속성을 이용하면 여러 개

옵션 중에서 처음에 미리 선택되는 

옵션을 지정할 수 있습니다. 

 

정확한 입력값을 전송하기 위해

radio type은 모든 input 요소가 반드시

같은 name 속성을 가져아 합니다.


체크박스

 

<input> 태그 type에 "checkbox"로

설정 시 사용자로부터 여러 개의 옵션 중 

다수의 옵션을 입력받을 수 있습니다.

 

체크박스는 라디오 버튼과 달리 

여러 개의 옵션을 한 번에

입력 받을 수 있습니다.

 

이때 서버로 정확한 입력을 

전송하기 위해 반드시 input 요소의

name 속성이 같아야 합니다. 

<form> 
   <input type="checkbox" name="lecture" value="html" checked> HTML <br>
   <input type="checkbox" name="lecture" value="css"> CSS <br>
   <input type="checkbox" name="lecture" value="javascript"> Javascript <br>
   <input type="checkbox" name="lecture" value="cpp" disabled> C++ 
</form>

checked 속성을 이용해 여러 개의 

옵션 중 처음에 미리 선택되는 옵션을 

지정할 수 있습니다.

 

또, disabled 속성을 이용해 

해당 옵션을 선택할 수 없게 설정할 수

있습니다.


파일선택

 

<input> 태그의 type 속성값을 "file"로 

설정하면, 사용자로부터 파일을 

전송받을 수 있습니다.

<form>
   <input type="file" name="upload_file" accept="image/">
</form>

accept 속성을 이용해 입력받을 수  

있는 파일의 확장자 및 종류를 

명시할 수 있습니다.


선택 입력

 

select 요소는 여러 개의 옵션이

드롭다운 리스트(drop-down-list)로

 

되어 있으며 그 중 단하나의 옵션만을 

입력받을 수 있습니다.

 

option 요소는 드롭다운 리스트에 

선택 받을 수 있는 각각의 옵션을 

명시합니다.

 

 

selected 속성을 이용해 

드롭다운 리스트 중 처음에 미리 

선택되는 옵션을 지정할 수 있습니다.

<select name="fruit">
    <option value="apple">사과
    <option value="orange" selected> 오렌지
    <option value="melon"> 멜론
    <option value="mango"> 망고 
</select>

selected 속성을 이용해 드롭다운

리스트 중 처음에 미리 선택되는 

옵션을 지정할 수 있습니다.


문장 입력

 

textarea 요소는 사용자로부터

여러 줄의 텍스트를 입력 받을 수 

있습니다.

 

rows 속성과 cols 속성을 이용해

textarea 요소의 크기를 자유롭게

지정이 가능합니다. 

<textarea name="message" cols="30" rows="5">
        문장을 입력하세요
</textarea>

rows 속성과 cols 속성을 사용해 

textarea 요소의 크기를 자유롭게 

지정할 수 있습니다.


버튼

 

button 요소는 사용자가 누를 수 있는

버튼을 나타냅니다.

<button type="button" onclick="alert('버튼이 클릭되었습니다')">
  버튼 클릭
</button>

alert 요소는 해당 컴포넌트를 클릭시

나타나는 알림창 기능 입니다.


전송 버튼

 

<input> 태그의 type 속성을 "submit"

으로 설정하면 사용자로부터 입력받은

 

데이터(data)를 서버의 폼 핸들러로 

제출하는 버튼을 만들 수 있습니다.

 

폼 핸들러(form-handler)란 입력받은 

데이터를 처리하기 위한 서버 측의 

웹 페이지를 의미합니다.

 

이러한 폼 핸들러의 주소는 

form 요소의 action 속성을 이용해

명시할 수 있습니다.

<form action="https://koras02.tistory.com">
   본인의 어릴때 추억의 만화는?: <br>
   <input type="text" name="question" value="만화"><br><br>
   <input type="submit" value="전송하기">
</form>

필드셋(fieldset)

 

fieldset 요소는 form 요소와 관련된

데이터를 하나로 묶는 역할을 합니다.

 

legend 요소는 fieldset 요소 안에서만 

사용할 수 있으며, fieldset 요소의 

제목을 나타냅니다.

<form action="https://koras02.tistory.com">
    <fieldset>
        <legend>입력 양식</legend>
          이름: <br>
        <input type="text" name="username"> <br>
          이메일: <br>
        <input type="text" name="email"> <br>
        <input type="submit" value="전송">
    </fieldset>
</form>

HTML5에서 추가된 input 요소

  • datalist 요소
  • keygen 요소
  • output 요소

참고 자료

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

 

GitHub - Koras02/html-study: html 블로그 작성용 - study1

html 블로그 작성용 - study1. Contribute to Koras02/html-study development by creating an account on GitHub.

github.com

 

'프론트 엔드 > HTML' 카테고리의 다른 글

[HTML] HTML - 18.Input 요소의 속성  (0) 2023.01.20
[HTML] HTML - 16.레이아웃  (0) 2023.01.18
[HTML] HTML - 15. iframe 요소  (0) 2023.01.16
    '프론트 엔드/HTML' 카테고리의 다른 글
    • [HTML] HTML - 19.HTML과 CSS
    • [HTML] HTML - 18.Input 요소의 속성
    • [HTML] HTML - 16.레이아웃
    • [HTML] HTML - 15. iframe 요소
    Koras02
    Koras02
    현재 사용중인 언어 - next-js,react,vue, typescript

    티스토리툴바