우리는 웹에서 폼을 자주 만납니다.한 페이지 안에서도 여러 가지 폼이 사용되죠.
아이디와 비밀번호를 입력하거나 로그인 버튼,회원 가입 창 등 사용자가 웹 사이트로 정보를 보낼 수 있는 요소들은 모두 폼이라 할 수 있습니다.
<form>
태그
<form>
태그는 폼을 만드는 가장 기본적인 태그로<form>
태그와</form>
태그 사이에 여러 폼 요소와 관련된 태그를 넣습니다.
<form>
태그는 몇 가지 속성을 통해 사용자가 일정한 자료들을 어떤 서버로 어떤 방식으로 넘길 것인지, 서버에서 어떤 프로그램을 이용해 처리할 것인지 지정합니다.1.method: 사용자가 입력한 내용들을 서버 쪽 프로그램으로 어떻게 넘겨줄지 지정합니다.
👉get-주소 표시줄에 사용자가 입력한 내용이 그대로 드러납니다. 256byte-4096byte까지의 데이터만 서버로 넘길 수 있습니다.
👉post-대부분 이 방식을 사용합니다. 사용자의 입력을 표준 입력으로 넘겨주기 때문에 입력 내용의 길이에 제한을 받지 않고 사용자가 입력한 내용이 드러나지 않습니다.
2.name: 폼의 이름을 지정합니다. 한 문서 안에 여러 개의<form>
태그가 있을 경우, 폼들을 구분하기 위해 사용합니다.
3.action: <form>
태그 안의 내용들을 처리해 줄 서버 상의 프로그램을 지정합니다.
4.target: action속성에서 지정한 스크립트 파일을 현재 창이 아닌 다른 위치로 열도록 지정합니다.
<form>
태그를 이용해 폼이 들어갈 부분을 만들었다면 <form>
태그와</form>
태그 사이에 여러 폼 태그들을 삽입하면서 원하는 폼 형태를 만들 수 있습니다.<form action="register.php">
~여러 폼 요소~
</form>
<input>
태그를 사용합니다.<form>
태그에서 action="search.php"로 지정했기 때문에 사용자가 검색할 내용을 입력하고 [검색]버튼을 클릭하면 그 값이 웹 서버에 있는 search.php 파일로 전송되어 검색이 처리됩니다.그리고 그 결과가 다시 웹 브라우저로 전달되어 화면에 표시됩니다.검색창이나 로그인 창에 내용을 입력할 때 이전에 입력했던 내용이 아래에 표시되는 이기능을 '자동완성기능'이라고 하며 사용자가 입력했던 내용을 기억했다가 비슷한 내용을 입력할 경우,이전에 입력했던 내용을 힌트로 보여줍니다.
<form action="register.php" autocomplete="off">
...
</form>
<label>
태그-폼 요소에 레이블 붙이기
<label>
태그는 폼 요소에 레이블을 붙이기 위한 것입니다.레이블이란 입력 창 옆에 '아이디','비밀번호'처럼 붙여 놓은 텍스트를 말합니다.
<label>
태그 안에 폼 요소를 넣는 방법<label>아이디(6자이상)<input type="text"...></label>
<label>
요소와 폼 요소르 따로 사용하고 <label>
태그에서는 for속성을 이용하고 폼 요소에서는 id 속성을 이용해 서로 연결하는 것입니다.<label>
태그의 for 속성에게 알려주는 방법)<label for="user-id">아이디(6자이상)</label>
<input type="text" id="used-id">
👉이 방법은 폼 요소의 앞뒤에 <label>
태그와</label>
태그를 붙이는 첫 번째 방법 보다 복잡한것 같아 보이지만 <label>
태그를 사용한 텍스트 부분과 사용자 입력을 받는 <input>
소스가 떨어져 있더라도 둘 사이를 쉽게 연결할 수 있다는 장점이 있습니다.
<label>
태그스마트폰 처럼 화면이 작은 기기에서 라디오 버튼이나 체크박스부분을 정확히 터지하는 것은 쉽지 않은 일입니다.그럴떄
<label>
태그를 이용해 버튼이나 체크박스에 텍스트를 연결해 놓았다면 텍스트만 터치해도 선택되어 사용이 훨씬 쉬워집니다.
<form>
<h3>수강 분야(다수 선택 가능)</h3>
<ul>
<li><input type="checkbox" value="grm">문법 </li>
<li><input type="checkbox" value="wr">작문</li>
<li><input type="checkbox" value="rd">독해</li>
</ul>
<h3>수강 과목(1과목만 선택 가능)</h3>
<ul>
<li>
<label><input type="radio" name="subject" value="eng">영어회화</label>
</li>
<li>
<label><input type="radio" name="subject" value="ch">중국어회화</label>
</li>
<li>
<label><input type="radio" name="subject" value="jp">일어회화</label>
</li>
</ul>
</form>
<label>
태그를 사용하지 않았기 때문에 텍스트만 클릭하면 체크박스 버튼이 선택되지 않습니다.<label>
태그를 사용했기때문에 텍스트만 클릭해도 왼쪽 라디오 버튼이 선택됩니다.<ul>
1개,<li>
1개 이렇게 만들어야 한다.<fieldset>
,<legend>
태그 -폼 요소 그룹으로 묶기쇼핑몰 사이트에서 주문서를 작성하는 폼에서 '사용자 정보'와 '배송 정보'를 나누어 표시하면 사용자가 정보를 입력하기에도 편리하고 화면도 깔끔하게 정리할 수 있습니다.
이렇게 하나의 폼 안에서 여러 구역을 나누어 표시하려고할 때<fieldset>
,<legend>
태그를 사용합니다.
<fieldset>
태그는 <fieldset>
와</fieldset>
태그 사이의 폼들을 하나의 영역으로 묶고 외곽선을 그려준다.<legend>
태그는 <fieldset>
태그로 묶은 그룹에 제목을 붙여줍니다.<fieldset>
태그를 이용해 '개인정보'와'로그인 정보'로 묶은 것입니다.<form>
<fieldset>
<legend>개인 정보</legend>
<ul>
<li>
<label for="name">이름</label>
<input type="text" id="name">
</li>
<li>
<label for="mail">메일 주소</label>
<input type="text" id="mail">
</li>
</ul>
</fieldset>
<fieldset>
<legend>로그인 정보</legend>
<ul>
<li>
<label for="id">아이디</label>
<input type="text" id="id">
</li>
<li>
<label for="pwd">비밀번호</label>
<input type="text" id="pwd">
</li>
</ul>
</fieldset>
</form>