오늘은 웹사이트 제작시 많이 쓰이는 <input>
의 요소들을 더 확실히 공부해보고자 한다. 그리고 그렇게 공부한 것을 바탕으로 '설문조사' 폼을 만들어보도록 하겠다.
<input>
에 들어가기 앞서 <form>
요소 알아보기<form>
요소는 정보를 제출하기 위한 대화형 컨트롤을 포함하는 문서 구획을 나타낸다.
<form>
<label>Name:
<input name="submitted-name" autocomplete="name">
</label>
<button>Save</button>
</form>
<input>
에 들어가기 앞서 <label>
요소 알아보기<label>
요소는 <input>
가 무엇에 대한 것인지 알 수 있게 라벨링해주는 요소.
<label>
을 쓰면 좋은 점.<label>
을 클릭하면 내장되어 있는 click
이벤트가 동작해 <input>
이 활성화된다.<input>
과 <label>
을 연관짓는 법방법1.
<label for="name">
, <input id="name">
label
의 for
속성값과 input
의 id
값이 같아야한다.
방법2.
<label>
안에 <input>
을 중첩시킨다.
<label>
<input type="text" name="name">
</label>
이 경우 for
속성이나 id
속성이 필요 없다.
<label>
사용시 주의점<label>
안에 <a>
나 <button>
와 같은 인터랙티브 요소를 배치하지 말 것. 그러면 라벨에 관련된 양식을 작성하기가 어렵다.
<label>
내에 제목 요소를 배치하지 말 것.
<input>
의 유형1) 기본 버튼
버튼
<button>버튼</button>
2) 리셋 버튼
User ID:
<input type="reset">
초기화버튼
3) 체크박스
<input type="checkbox">
4) 라디오 버튼
<input type="radio">
5) 제출 버튼
<section>
<div>
<input type="radio" id="banana" name="fruits" value="banana">
<label for="banana">Banana</label>
</div>
<div>
<input type="radio" id="apple" name="fruits" value="apple">
<label for="apple">Apple</label>
</div>
<div>
<input type="radio" id="kiwi" name="fruits" value="kiwi">
<label for="kiwi">Kiwi</label>
</div>
</section>
checked
: 그룹 중 어느 하나가 디폴트 값으로 선택된다.value
: radio
타입에서의 value
값은 다른 타입보다 좀더 특별한 목적을 갖고 있는데, 이 양식이 제출될 때 체크된 라디오 버튼의 value
만 보고된다<input>
창1)
<input type="date">
2)
<input type="datetime-local">
3)
<input type="time">
4)
<input type="week">
5)
<input type="month">
<input>
창1) 이메일
<input type="email">
유효성 검증 매개변수가 존재해 이메일에 적합한 키보드를 보여줌. @이 꼭 들어가야함.
2) 패스워드
<input type="password">
maxlength
, minlength
로 비밀번호 최대 최소 자리를 설정 가능.3) 숫자
<input type="number">
숫자타입만 입력가능, 입력창에 증가와 감소 화살표가 들어가 있다.
<input id="number" type="number" value="42">
max
, min
: 입력창 내 최대값과 최소값 설정list
<label for="ice-cream-choice">Choose a flavor:</label>
<input list="ice-cream-flavors"
id="ice-cream-choice"
name="ice-cream-choice" />
<datalist id="ice-cream-flavors">
<option value="Chocolate">
<option value="Coconut">
<option value="Mint">
<option value="Strawberry">
<option value="Vanilla">
</datalist>
4) 전화번호
Enter your phone number:
Format: 123-456-7890
pattern
에 정규식 표현으로 패턴값을 적어준다.<label for="phone">Enter your phone number:</label>
<input type="tel" id="phone" name="phone"
pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}"
required>
<small>Format: 123-456-7890</small>
5) url 주소 입력창
Enter an https:// URL:
pattern
에 정규식 표현으로 패턴값을 적어준다.<label for="url">Enter an https:// URL:</label>
<input type="url" name="url" id="url"
placeholder="https://example.com"
pattern="https://.*" size="30"
required>
1)
<input type="file">
accept
/올려야 할 파일 형식에 대한 힌트를 알려줌2) (사용자에겐 데이터가 보이지 않음)
<input type="hidden">
// 포스트아이디 넘버 데이터를 같이 전송
<input type="hidden" id="postId" name="postId" value="34657">
3)
<input type="image">
alt
, src
width
와 height
속성을 적용할 수 있다.4) Cowbell
<input type="range">
min
, max
, value
value
는 초기값으로 설정된다.list
는 <input type="range" list="tickmarks">
<datalist id="tickmarks">
<option value="0" label="0%"></option>
<option value="10"></option>
<option value="20"></option>
<option value="30"></option>
<option value="40"></option>
<option value="50" label="50%"></option>
<option value="60"></option>
<option value="70"></option>
<option value="80"></option>
<option value="90"></option>
<option value="100" label="100%"></option>
</datalist>
5) Search the site: Search
list
, maxlength
, minlength
readonly
, spellcheck
6)
<input type="color">
form
| 폼 요소를 컨트롤
type
| 폼 컨트롤의 타입
value
| 컨트롤의 초기값
name
| 폼 컨트롤의 이름
autocomplete
| 자동완성, 불린값 아님.
https://developer.mozilla.org/ko/docs/Web/HTML/Attributes/autocomplete
autofocus
| 자동 포커스, 그러나 하나밖에 적용 안됨.
required
(almost all) | 필수 입력
disabled
| 입력 불가능
readonly
(almost all) | 입력 불가능
disabled
와 readonly
의 차이disabled
은 form
으로 값이 전송되지 않는 반면 readonly
는 값이 전송된다.list
(almost all) | <datalist>
max
, min
, step
(numeric types)
placeholder
| password, search, tel, tex, url
size
| email, password, tel, text, url | 사이즈 크기 조절
pattern
| password, text, tel | 유효성이 매치되어야함
출처 :
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-autocomplete
요기서 공부했당. 뭔가 한번은 전체적으로 공부하고 정리하고 싶었다. 원래는 공부한 것을 바탕으로 설문조사 페이지도 같이 올리려고 했는데 너무 길어져서 이건 다음 포스트에...