HTML 폼은 다양한 종류의 입력 필드와 함께 구성될 수 있습니다. 사용자가 제출할 수 있는 데이터의 유형과 양식에 따라 다양한 입력 필드를 사용할 수 있습니다. 예를 들어, 텍스트 입력 필드는 사용자로부터 이름, 이메일, 주소 등의 텍스트 정보를 입력받을 수 있으며, 숫자 입력 필드는 숫자 값(예: 나이, 수량)을 입력받을 수 있습니다, 또한, HTML 폼은 체크박스와 라디오 버튼과 같은 선택적 입력 요소를 제공하여 사용자가 여러 옵션 중에서 선택할 수 있도록 합니다. 체크박스는 여러 항목을 복수로 선택할 수 있도록 하고, 라디오 버튼은 여러 항목 중에서 하나를 선택할 수 있도록 합니다.
- form태그 (폼 양식을 의미하는 태그, action과 method 속성을 함께 사용)
- input태그 (로그인 페이지의 아이디 와 비밀번호 처럼 입력 받는 요소를 생성할 때 사용 – type,name,value속성이 있는데 type속성은 필수로 사용하여야 한다.)
- label태그 (form태그 안에서 사용하는 상호작용 요소에 이름을 붙일 때 사용)
- textarea태그 (여러 줄의 입력 요소를 생성할 때는 input태그가 아닌 textarea태그를 사용)
- select,option,optgroup태그 (select태그를 사용하면 콤보박스 를 생성할 수 있음, 콤보박스 에 항목 하나 추가 할 때 option태그를 사용하고, 항목들을 그룹으로 묶고 싶을 때 optgroup태그 사용)
- button태그 (input태그에서 type속성값을 submit,reset,button으로 지정해 생성할 수 있음, 별도의 button태그로 생성할 수도 있음)
<예제코드> – input태그
<!-- 형식 <input type = "종류" name = "이름" value = "초깃값"> --> <!-- input태그로 생성할 수 있는 입력 요소와 type 속성값 --> <input type = "text"> <input type = "password"> <input type = "tel"> <input type = "number"> <input type = "url"> <input type = "search"> <input type = "email"> <input type = "checkbox"> <input type = "radio"> <input type = "file"> <input type = "button"> <input type = "image" src = "./이미지경로"> <input type = "hidden"> <input type = "date"> <input type = "datetime-local"> <input type = "month"> <input type = "week"> <input type = "range"> <input type = "color"> <input type = "submit"> <input type = "reset">
<예제코드> – label태그
<!-- label태그는 사용하는 방법에 따라 암묵적인 방법, 명시적인 방법으로 -->
<!-- 암묵적인 방법 label태그에 상호작용 요소 포함. -->
<label>
아이디
<input type = "text">
</label>
<!-- 명시적인 방법 label태그와 for속성과 상호작용 요소인 id속성을 같은 값으로 설정 -->
<label for = "usepw">비밀번호</label>
<input type = "password" id = "wsepw">
<!-- for 속성과 id 속성값이 같아야 함. -->
<예제코드> – form태그
<!--형식 <form action="#">
<fieldset>
<legend>그룹 이름</legend>
상호작용 요소 생략
</fieldset>
</form> -->
<form>
<fieldset>
<legend>기본 정보</lengend>
<p>
<label for = "userid">아이디</label>
<input type = "text" id = "userid">
</p>
<p>
<label for = "passwd">비밀번호</label>
<input type = "text" id = "passwd">
</p>
</fieldset>
<fieldset>
<legend>선택 정보</lengend>
<p>
<label for = "age">나이</label>
<input type = "number" id = "age">
</p>
<p>
<label for = "recomender">추천인</label>
<input type = "text" id = "recomender">
</p>
</fieldset>
</form>
<예제코드> – textarea태그
<!-- 형식 <textarea>초깃값</textarea> -->
<!-- input태그와 다르게 닫는 태그가 있음. -->
<form action = "#" method = "post">
<fieldset>
<legend>블로그 글쓰기</legend>
<p>
<label for = "title">제목
<input type = "text" id = "title" name = "title">
</label>
</p>
<p>
<label for = "desc">내용
<textarea id = "desc" name = "desc"></textarea>
</label>
</p>
</fieldset>
</form>
<예제코드> – select태그
<!--형식 <select>
<optgroup label="그룹 이름">
<option value="서버에 전송할 값">웹 브라우저에 표시할 값</option>
</optgroup>
</select> -->
<select name="city" id="city">
<option value="강북구">강북구</option>
<option value="강남구">강남구</option>
<option value="서초구">서초구</option>
<option value="중원구">중원구</option>
<option value="분당구">분당구</option>
</select>
<select name="city" id="city">
<optgroup label="서울시">
<option value="강북구">강북구</option>
<option value="강남구">강남구</option>
<option value="서초구">서초구</option>
</optgroup>
<optgroup label="경기도 성남시">
<option value="중원구">중원구</option>
<option value="분당구">분당구</option>
</optgroup>
</select>
<!-- size속성은 콤보박스 화면에 노출되는 항목갯수 지정, 생략할 경우 기본1개 -->
<select name="city" id="city" size="3">
<option value="강북구">강북구</option>
<option value="강남구">강남구</option>
<option value="서초구">서초구</option>
<option value="중원구">중원구</option>
<option value="분당구">분당구</option>
</select>
<!-- 다중선택 가능한 multiple속성 -->
<select name="city" id="city" multiple>
<option value="강북구">강북구</option>
<option value="강남구">강남구</option>
<option value="서초구">서초구</option>
<option value="중원구">중원구</option>
<option value="분당구">분당구</option>
</select>
<!-- 콤보박스 첫 번재 option태그의 값이 기본선택인데, selected속성 사용하면 기본선택 화면 변경가능 -->
<select name="city" id="city">
<option value="강북구">강북구</option>
<option value="강남구">강남구</option>
<option value="서초구" selected>서초구</option>
<option value="중원구">중원구</option>
<option value="분당구">분당구</option>
</select>
<예제코드> – button태그
<!--형식 <button type = "종류">버튼 내용</button> -->
<button type = "submit">
<img src = "이미지경로" alt = "이미지설명">
페이스북에 등록하기
</button>
<예제코드> – checked 속성 사용
<!--형식 <태그 checked> -->
<fieldset>
<legend>좋아하는 과일</legend>
<input type="checkbox" id="banana" name="banana" value="banana">
<label for="banana">banana</label><br>
<input type="checkbox" id="apple" name="apple" value="apple">
<label for="apple">apple</label><br>
<input type="checkbox" id="ornage" name="ornage" value="ornage">
<label for="ornage">ornage</label>
</fieldset>
<예제코드> – disabled, readonly, maxlength, placeholder 속성 사용
<!--형식 <태그 disabled>, 서버로 값 전송x --> <input type="text" disabled> <button type="button" disabled>비활성</button> <!--형식 <태그 readonly> 서버로 값 전송o--> <input type="password" readonly> <textarea readonly></textarea> <!--형식 <태그 maxlength="숫자"> --> <input type="url" maxlength="4"> <textarea maxlength="4"></textarea> <!--형식 <input placeholder="입력값에 대한 힌트"> --> <input type="tel" placeholder="전화번호를 입력해 주세요.">