<input>태그의 다양한 속성

<input>태그의 다양한 속성

1. 폼 만들기

웹에서 만나는 폼

  • 사용자가 웹 사이트로 정보를 보낼 수 있는 요소들은 모두 폼(form)
  • 폼과 관련된 대부분의 작업들은 정보를 저장하거나 검색하거나 수정하는 일들
  • 이런 작업은 모두 데이터베이스를 기반으로 한다.
  • 아이디를 입력하는 텍스트 필드나 버튼 같은 폼의 형태를 만드는 것은 HTML 태그
  • 폼에 입력한 사용자 정보를 처리하는 것은 ASP나 PHP 같은 서버 프로그래밍 이용
  • 여기에서는 서버 프로그래밍에 대해서는 다루지 않고 브라우저에 표시될 폼을 만드는 태그들에 대해 살펴본다.

폼의 동작 방식

  1. 사용자가 [아이디]와 [비밀번호]에 정보 입력 → [로그인] 클릭
  2. 사용자가 입력한 아이디와 비밀번호가 웹 서버로 보내짐
  3. 서버는 자신이 가지고 있는 사용자 데이터베이스를 뒤져서 사용자가 보내온 아이디와 비밀번호가 서로 일치하는 정보인지 확인하고 그 결과를 브라우저에 보냄.
  4. 회원이라면 로그인한 후의 결과 화면이 나타나고, 아니라면 로그인 실패 화면이 나타남.

<form> 태그

폼을 만드는 기본 태그. <form>과 </form> 사이에 여러 폼 요소 삽입

<form> 태그에서 사용 하는 속성들

<form  method="post" action="search.jsp">
	<input type="text" title="검색">
	<input type="submint" value="검색">
</form>

  1. 검색어를 입력하고 [검색] 버튼을 클릭
  2. 입력한 내용이 웹 서버에 있는 search.php 파일로 전송
  3. 서버에서 search.php 파일 실행 후
  4. 그 결과가 다시 웹 브라우저로 전달되어 화면에 표시됨

<label> 태그

  • 폼 요소에 레이블(텍스트)을 붙이는 태그
  • 라디오 버튼이나 체크 박스에서 텍스트 부분을 클릭해도 라디오 버튼과 체크 박스 버튼이 선택된다.

<fieldset> 태그

  • 폼 요소를 그룹으로 묶는 태그

<legend> 태그

  • 그룹으로 묶는 구역에 제목을 붙이는 태그
더보기
<body>
    <form>
        <!-- <fieldset></fieldset> : 테두리 박스 -->
        <fieldset>
            <!-- <legend></legend> : 테두리에 제목 -->
            <legend>개인 정보</legend>
            <ul>
                <li>
                    <!-- for="name"과 id="name" 이름을 맞추어야 커서가 위치됨 -->
                    <label for="name">이름</label>
                    <!-- 텍스트 박스 -->
                    <input type="text" id="name">
                </li>
                <li>
                    메일주소
                    <input type="text">
                </li>
            </ul>
        </fieldset>
        <fieldset>
            <legend>로그인 정보</legend>
            <ul>
                <li>
                    아이디
                    <input type="text">
                </li>
                <li>
                    비밀번호
                    <input type="text">
                </li>
            </ul>
        </fieldset>
    </form>
</body>

2. <input> 태그

  • 사용자가 입력하는 부분은 거의 <input> 태그를 이용해 처리
  • 입력하는 내용의 종류는 <input> 태그의 type 속성을 통해 지정
  • type 속성 값에 따라 함께 사용할 수 있는 속성들도 달라진다
  • <input> 태그의 id 속성
    • 여러 번 사용된 폼 요소를 구분하기 위해 사용
    • <label> 태그를 이용해 캡션을 붙일 수 있다.
    • CSS를 이용해 각 요소마다 다른 형태로 꾸밀 수 있다.

type = “hidden”

  • 화면 상의 폼에는 보이지 않는다.
  • 폼을 서버로 전송할 때 서버로 함께 전송되는 요소

type = “text”

  • 한 줄짜리 텍스트 입력 필드
  • 주로 아이디나 이름, 주소 등 텍스트 입력

type = “password”

  • 비밀번호 입력란
  • 사용자가 입력하는 내용이 ‘ * ’나 ‘•’로 표시된다

type = “search”

  • 검색 필드
  • 검색 창에 x 표시가 되어 검색어 삭제 쉬움

type = “url”

  • 웹 주소 필드
  • http://’로 시작하는 사이트 주소 입력

type = “email”

  • 메일 주소 입력 필드
  • 메일 주소 형식 자동 체크

type = “tel”

  • 전화번호 입력 필드
  • 사용자 입력을 체크하지는 않음.
<body>
    <form action="">
        <fieldset>
            아이디: <input type="text"><br>
            <!-- type="password" : 불릿으로 표시됨 -->
            비밀번호: <input type="password">
            <!-- type="submit" : form 태그에 action 값을 찾아감 -->
            <!-- action 값이 없어서 초기화 -->
            <input type="submit" value="로그인">
        </fieldset>
    </form>
</body>

type = “number”

  • 숫자 입력 필드. 브라우저에 따라 스핀 박스로 표시됨

type = “range”

  • 숫자 입력 필드. 슬라이드 막대를 이용해 숫자 입력

type = “color”

  • 색상 표에서 색상 선택
<body>
    <form>
        <fieldset>
            <legend>등록정보</legend>
            참여인원<small>(최대10명)</small> 
            <!-- type="number" : 스핀으로 숫자 증감하거나 숫자만 입력 -->
            <!-- 0~10 사이의 숫자만 입력됨 -->
            <input type="number" min="0" max="10"><br>
            지원물품<small>(1인당 5개)</small> 
            <!-- value="5" : 초기값 -->
            <!-- step="5" : 5의 배수로 증감 -->
            <input type="number" value="5" step="5" min="0" max="50"><br>
            희망단계<small>(하,중,상)</small>
            <!-- type="range" : 범위 형태로 움직임 -->
            <input type="range" value="2" min="1" max="3"><br>
            <!-- type="color" : 색상 선택(기본색은 검정) -->
            <!-- RGB : R(red), G(green), B(blue) -> 3원색가지고 색상 조합 -->
            <!-- value="#00ff00" : 16진수가 2개씩 쌍으로 6개(RGB) -> 00~ff -->
            <!-- 10진수 : 0 ~ 9, 16진수 : A(10) ~ F(15) -->
            <input type="color" value="#00ff00">
        </fieldset>
    </form>
</body>

type = “radio”

  • 여러 항목 중 하나만 선택할 때

type = “checkbox”

  • 여러 항목 중 둘 이상을 선택할 때

<body>
    <form>
        <h3>수강분야(다수 선택 가능)</h3>
        <ul>
            <!-- name="grm" -> 서버로 전송되는 값(화면 표시는 안됨) -->
            <input type="checkbox" name="grm">문법<br>
            <input type="checkbox" name="wr">작문<br>
            <!-- label : 글자 클릭시 체크박스(라디오버튼)가 작동됨 -->
            <label>
                <input type="checkbox" name="rd">독해<br>
            </label>
        </ul>
        <h3>수강분야(1과목만 선택 가능)</h3>
        <ul>
            <!-- type="radio" : 여러개 중에 하나 선택 -->
            <!-- 라디오버튼은 name의 속성값이 같아야 하나만 선택됨 -->
            <input type="radio" name="subject">영어회화<br>
            <input type="radio" name="subject">중국어회화<br>
            <input type="radio" name="subject">일어회화<br>
        </ul>
    </form>
</body>

type = “date”, type=“month”, type=“week”

<body>
    <form action="">
        <h3>날짜 입력</h3>
        <input type="date"><br>
        <input type="month"><br>
        <input type="week"><br>
    </form>
</body>

type = “time”, type=“datetime-local”

<body>
    <form action="">
        <h3>검사시간을 선택하세요(오늘)</h3>
        시작 시간<input type="time" value="09:00"><br>
        종료 시간<input type="time" value="18:00"><br>

        <h3>검사시간을 선택하세요(다른날짜)</h3>
        <!-- type="datetime-local" : 날짜 추가되어서 표시 -->
        시작 시간<input type="datetime-local" value="2016-03-02 09:00"><br>
        종료 시간<input type="datetime-local" value="2016-03-02 18:00"><br>
    </form>
</body>

type = “submit”, type=“reset”

  • 폼 전송/리셋 버튼
  • 전송(submit) 버튼 : 사용자 입력 내용을 서버로 전송
  • 리셋(reset) 버튼 : 사용자 입력 내용 전부 삭제
  • value 속성을 이용해 버튼 표시 내용 지정
<body>
    <h3>메일링 리스트 등록</h3>
    <!-- post 방식으로 register.jsp 호출 -->
    <!-- ERR_FILE_NOT_FOUND : register.jsp 로 이동못해서 오류 발생 -->
    <form action="register.jsp" method="post">
        메일주소1 <input type="text"><br>
        메일주소2 <input type="text"><br>
        <!-- type="submit" : 기본값이 제출 -->
        <input type="submit" value="제출">
        <!-- type="reset" : 기본값이 초기화 -->
        <!-- type="reset" : form 태그 안에 있는 값을 초기화 -->
        <!-- <input type="reset"> -->
        <input type="reset" value="다시입력">
    </form>
</body>

type = “image”

  • submit 버튼 대신 이미지 삽입
<body>
    <table>
        <tr>
            <td>아이디<input type="text" size="15"></td>
            <td>비밀번호<input type="password" size="15"></td>
            <td><input type="image" src="images/login.jpg"></td>
            <td></td>
        </tr>
    </table>
</body>

3. <input> 태그의 다양한 속성

  • autofocus : 페이지를 불러오자마자 원하는 폼 요소에 마우스 커서 표시
  • placeholder : 입력란에 표시하는 힌트로, 필드를 클릭하면 사라짐
  • readonly : 내용을 보기만 하고 입력하지 못하게 함. (readonly=“readonly”, readonly=“true”로 표시하기도 함)
  • required
    • 필수 필드 체크
    • 필수 필드는 브라우저에서 직접 체크하는 것이므로 오류메시지 내용은 브라우저들마다 다르게 나타남
  • min, max, step
    • min, max : 해당 필드의 최솟값,최댓값
    • step : 허용된 범위 내의 숫자 간격
    • type이 date, datetime, datetime-local, month, week, time, range, number 일 경우에만 사용
  • size, minlength, maxlength
    • size : 텍스트 관련 필드에서 화면에 몇 글자까지 보이게 할지 결정
    • maxlength : 입력 가능한 최대 글자
    • minlegth : 입력해야 할 최소 글자. (크롬과 안드로이드 브라우저에서만 지원)

목차로 돌아가기

'HTML CSS > HTML' 카테고리의 다른 글

HTML 실습 문제 모음  (0) 2024.04.09
여러 데이터 나열해 보여주기  (0) 2024.04.08
이미지와 하이퍼링크  (1) 2024.04.08
표를 만드는 태그  (0) 2024.04.08
목록을 만드는 태그  (0) 2024.04.08