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="전화번호를 입력해 주세요.">