// 기본적으로 <form></form> 태그 안에 작성
// <label>태그의 for=""값과 <input>의 id=""값을 같게하면 묶어짐
<form id="myform" action="https://www.naver.com">
<div>
<label for="username">사용자이름</label>
<input type="text" name="username" id="username" />
</div>
<div>
<label for="userpass">비밀번호</label>
<input type="text" name="userpass" id="userpass" />
</div>
<button type="submit" id="btn">입력값 확인</button>
<hr />
<div id="result"></div>
</form>

<input type="text" id="userpass" value="" />.value로 갖는 태그 .value="" 원하는 내용도 출력 가능readonly, require등 사용 가능
<form id="myform">
<div>
<label for="subject"></label>
<select name="subject" id="subject">
<option value="">--- 선택하세요 ----</option>
<option value="html">HTML</option>
<option value="css">CSS</option>
<option value="javascript">JAVASCRIPT</option>
</select>
</div>
<button type="submit">입력값 확인</button>
<hr />
<!-- 선택결과를 표시할 div -->
<div id="result"></div>
</form>
선택된 값의 인덱스가 .selectedIndex 에 들어감.

<form id="myform">
<label><input type="radio" name="subject" value="html" />HTML</label>
<label><input type="radio" name="subject" value="css" />CSS</label>
<label><input type="radio" name="subject" value="javascript" />JavaScript</label>
<button type="button" id="btn">입력값 확인</button>
</form>.value에 true가 저장됨.
여러개 선택 가능
선택된 목록은 .value에 true가 저장됨.
.addEventListener("change", (e) => {
해당 타겟의 값이 바뀔 경우 실행됨.
<form id="myform">
<div>
<label for="subject"></label>
<select name="subject" id="subject">
<option value="">--- 선택하세요 ----</option>
<option value="html">HTML</option>
<option value="css">CSS</option>
<option value="javascript">JAVASCRIPT</option>
</select>
</div>
<button type="submit">입력값 확인</button>
.
.
.
<script type="module">
document.querySelector("#myform").addEventListener("submit", (e) => {
e.preventDefault();
.
.
.
</script>
submit 이벤트는 <form>태그 자체에 이벤트를 걸어줘야 함.<button type="submit">입력값 확인</button>
위처럼 type="submit"인 <button>이나 <input>을 누르면 <form> 전체적으로 이벤트 실행.
<input> | <button></button> | |
|---|---|---|
| 태그의 종류 | 스스로 닫는 태그 | 닫는 태그 필요 |
| 내용 | 내용 추가가 어렵다. 글은 value=""에 사진은 background로 넣어야 함 | 안에 내용 추가가 용이<img>태그 사용 가능 |
| 타입 type="" | <button> 태그의 타입인 submit, reset, button 외에도 다양한 타입 사용 가능 | submit (기본 속성값) reset button (자체로는 아무 기능이 없고 click 이벤트 등에 사용) |
<button type="button" id="btn">입력값 확인</button>
<input type="button" id="btn" value="입력값 확인" />
document.querySelectorAll('.class')같이 여러 태그를 가져오면 이 목록을Nodelist라고 하는데NodeList가Array는 아니지만,forEach()를 사용하여 반복할 수 있음.
또한Array.from()을 사용하여Array로 변환 할 수도 있습니다.그러나 일부 오래된 브라우저는 아직NodeList.forEach()또는Array.from()를 구현하지 않았습니다. 이것은Array.prototype.forEach()를 사용하여 회피할 수 있습니다.
출처 : https://developer.mozilla.org/ko/docs/Web/API/NodeList
NodeList 는 Array 와 다르다.forEach()만 사용 가능Array.from()을 이용하면 Array로 변환 되어 filter()나 map() 등 다른 배열 내장함수를 사용할 수 있게 된다.