본문 바로가기

Programming/HTML+CSS

3. 입력 양식 작성(1) - 기본 form 태그

html5 logo image

 

 

 

웹 상에서, 특정 값을 입력하여 서버나 DB로 값을 보내 처리하는 등의 동작을 위해서는 여러 가지 입력 폼(form)을 사용하게 됩니다. 아마 html에 조금 익숙하신 분들이라면 <input> 태그를 가장 먼저 떠올리실 분들이 많을 텐데, 일단 여기서는 간단하게 기본 폼 태그인 <form>에 대해서 살펴보면서 기본적인 내용을 먼저 익히도록 하겠습니다. 

 

 


 

 

 

기본 <form> 태그의 유형은, <form> </form> 태그 사이에 속성과 폼 관련 요소들을 삽입하는 형태로 구성됩니다. 

 

<form {속성="value"}>폼 요소</form>

 

위에서 기술된 '속성'은 몇 가지 대표적인 속성들이 있습니다. 하나씩 살펴보도록 하겠습니다. 

 

 

 


 

 

○ name

이 속성은 JS로 폼을 제어하는 경우에 사용할 폼의 이름을 의미합니다.

 

○ action

<form> 태그의 내용을 처리할 서버 프로그램을 지정합니다. 예를들어 해당 폼을 실행했을 경우 서버로 내용이 전송되고 서버의 account_register.php가 실행된다고 가정하면 다음과 같이 적용합니다. 

 

<form action="account_register.php">
	/* 내용 */
</form>

 

○ target

<a> 태그에서 사용한 기능과 비슷합니다. 위 action 속성에서 지정한 파일을 현재 윈도우나 탭이 아닌 다른 위치에서 열어야 할 때 사용하게 됩니다. 

 

○ autocomplete

기본적으로 입력 폼에서 자동완성 기능은 on으로 취급합니다. 하지만 중요 개인 정보나 일회성 입력 verifying code와 같은 경우에는 off 해야 하므로 다음과 같이 적용합니다.

 

<form action="" autocomplete="off">
	/* 내용 */
</form>

 

○ method

사용자가 입력한 내용을 서버로 전달할 때의 프로토콜 종류를 지정합니다. 이와 관련된 내용은 추후 상세히 다루어 볼 예정이니, 간단하게 이러한 내용이 있다는 정도만 기억해 둡니다.

 

- get : 데이터를 256 ~4,096byte까지만 전달이 가능하며, url에 사용자 입력이 그대로 노출됩니다.

- post : 입력한 내용이 노출되지 않고, 길이의 제한 역시 없습니다. 

 

 

 


 

 

지금부터는 <form>과 관련해 사용하는 몇 가지 중요 태그들에 대해서 살펴보겠습니다. 

 

○ <fieldset>, <legend> - 폼 요소 그룹화

 

위 태그들은, 하나의 폼 요소 안에서 몇 가지 구획을 나누어 관리할 필요가 있을 때 사용하는 태그입니다. 예를 들어 한 개의 폼 안에서 "계정 정보"와 "배송 정보"를 구분하는 등의 경우입니다. 사용 예시는 다음과 같습니다. 

 

<fieldset {속성="value"}>
	<legend>그룹 명칭</legend>
</fieldset>

 

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <form action="">
        <fieldset>
            <legend>계정 정보</legend>
        </fieldset>
        <fieldset>
            <legend>배송 정보</legend>
        </fieldset>
    </form>
</body>
</html>

 

 

 

○ <label> - 폼 요소에 레이블 부여하기

 

레이블(label)태그는 앞으로도 굉장히 자주 사용하게 되며, input 등의 주요 태그와 함께 사용하게 되는 중요 태그 중 하나이니, 내용을 잘 익혀두도록 합시다. 일단 기본적으로 레이블 태그를 사용하게 되면 [레이블 텍스트]와 [폼 요소]가 서로 연결됩니다. 레이블 텍스트와 폼 요소를 연결하는 방식은 두 가지가 있는데 하나씩 살펴보겠습니다. 

 

1. 레이블 태그 안에 폼 요소 삽입하기

 

레이블 태그 내에 직접 폼 요소를 삽입하는 형태입니다. 

 

<label>레이블명칭<input></label>

 

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <form action="">
        <label>아이디<input type="text"></label>
    </form>
</body>
</html>

 

2. 레이블 태그에 id 속성 부여하기

 

이 방식을 사용하게 되면 입력 폼에 id라는 속성을 별도로 부여하게 되고, 레이블 태그에 for 속성 쪽에 해당 id를 전달하여 두 개의 태그를 연결하게 되는 방식입니다. 

 

<label for="{id}">레이블명칭<input id="{id}"></label>

 

<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <form action="">
        <label for="userid">아이디</label>
        <input type="text" id="userid">
    </form>
</body>
</html>