▶ <input type="radio"> & <input type="checkbox"> 정리
▶ 이 명령어가 뭐하는 건지
- 둘 다 사용자로부터 선택을 입력받는 폼 요소.
- radio: 여러 옵션 중 하나만 선택 가능
- checkbox: 여러 옵션 중 복수 선택 가능
▶ 명령어 문법
▪ radio
<input type="radio" name="color" value="red"> Red
<input type="radio" name="color" value="blue"> Blue
▪ checkbox
<input type="checkbox" name="hobby" value="music"> Music
<input type="checkbox" name="hobby" value="travel"> Travel
▶ 파라미터(속성)에 어떤 게 들어갈 수 있는지?

▶ 주로 어떻게 쓰는지
- radio: 성별, 결제 방법, 배송 옵션 등 단일 선택이 필요한 경우
- checkbox: 관심사, 알림 수신 여부 등 복수 선택이 필요한 경우
- <label>과 함께 사용하여 접근성과 클릭 편의성 향상
▶ 예시
▪ radio 예시 (성별 선택)
<form>
<label><input type="radio" name="gender" value="male"> 남성</label>
<label><input type="radio" name="gender" value="female"> 여성</label>
</form>
▪ checkbox 예시 (취미 선택)
<form>
<label><input type="checkbox" name="hobby" value="reading"> 독서</label>
<label><input type="checkbox" name="hobby" value="sports"> 운동</label>
<label><input type="checkbox" name="hobby" value="movie"> 영화감상</label>
</form>
💡 추가 팁: radio는 반드시 name 속성을 동일하게 설정해야만 한 가지만 선택 가능하게 작동함.
▶ <label>과 함께 사용하는 방법
<label>은 클릭 범위를 넓혀주고 접근성을 높이는 중요한 요소. (2가지 방법)
🔹 1) <input>을 <label> 안에 넣기
<label>
<input type="checkbox" value="apple"> 사과
</label>
🔹 2) for + id 연결
<input type="radio" id="banana" name="fruit" value="banana">
<label for="banana">바나나</label>
▶ JavaScript로 값 다루기
🔸 1) 체크된 checkbox 값 가져오기
<form id="hobbyForm">
<label><input type="checkbox" name="hobby" value="music"> 음악</label>
<label><input type="checkbox" name="hobby" value="travel"> 여행</label>
<label><input type="checkbox" name="hobby" value="game"> 게임</label>
<button type="button" onclick="getHobbies()">확인</button>
</form>
<script>
function getHobbies() {
const checked = document.querySelectorAll('input[name="hobby"]:checked');
const values = Array.from(checked).map(cb => cb.value);
alert("선택한 취미: " + values.join(', '));
}
</script>
🔸 2) 선택된 radio 값 가져오기
<form id="genderForm">
<label><input type="radio" name="gender" value="male"> 남자</label>
<label><input type="radio" name="gender" value="female"> 여자</label>
<button type="button" onclick="getGender()">확인</button>
</form>
<script>
function getGender() {
const selected = document.querySelector('input[name="gender"]:checked');
alert("선택된 성별: " + (selected ? selected.value : "선택 안함"));
}
</script>
아직 줄임말은 이해가 잘 안된다면
const values = Array.from(checked).map(cb => cb.value);
alert("선택한 취미: " + values.join(', '));
// 체크된 것 가져오기
const checked = document.querySelectorAll('input[name="hobby"]:checked');
// 배열로 바꾸고 값만 추출하기
const checkedArray = Array.from(checked); // 진짜 배열로 만들기
const values = []; // 값 저장용 빈 배열
for (let i = 0; i < checkedArray.length; i++) {
values.push(checkedArray[i].value); // 각 checkbox의 value 값을 저장
}
alert("선택한 취미: " + values.join(', '));
alert("선택된 성별: " + (selected ? selected.value : "선택 안함"));
// 선택된 라디오 가져오기
const selected = document.querySelector('input[name="gender"]:checked');
if (selected) {
alert("선택된 성별: " + selected.value);
} else {
alert("선택된 성별: 선택 안함");
}'국비지원 - 실버마케팅(코딩) 250206~' 카테고리의 다른 글
| "HTML 요소들을 한 번에 불러오자! 자바스크립트 getElementsByClassName 사용법" (0) | 2025.05.08 |
|---|---|
| "CSS 선택자로 HTML 요소 찾기! 자바스크립트 querySelector 쉽게 배우기" (0) | 2025.05.08 |
| "파일끼리 어떻게 연결하지? 자바스크립트 import / export 쉽게 배우기" (0) | 2025.05.08 |
| 0317 경로이슈 (3) (0) | 2025.04.15 |
| 0317 탐험 웹p 사용 (0) | 2025.04.15 |