SOFTMOA TECHNOLOGY

[ javascript ] radio 버튼 자동체크하기

소프트모아가 정리한 기술 기록입니다.

Contents
작성일 2015. 03. 05.

JavaScript Radio 버튼 자동 체크하기



JavaScript로 라디오 버튼을 프로그래밍 방식으로 선택하는 다양한 방법입니다. 순수 JavaScript와 jQuery 방식을 모두 다룹니다.



1. HTML 구조 예시



<form id="myForm">
<input type="radio" name="gender" value="male" id="male"> 남성
<input type="radio" name="gender" value="female" id="female"> 여성
<input type="radio" name="gender" value="other" id="other"> 기타
</form>


2. 순수 JavaScript 방식



// ID로 선택
document.getElementById("male").checked = true;

// querySelector로 선택
document.querySelector("#female").checked = true;

// 값으로 선택
document.querySelector("input[name=gender][value=male]").checked = true;

// name으로 모든 라디오 가져와서 선택
const radios = document.getElementsByName("gender");
radios[0].checked = true; // 첫 번째 라디오 선택

// 값으로 찾아서 선택
function selectRadioByValue(name, value) {
const radios = document.getElementsByName(name);
for (let radio of radios) {
if (radio.value === value) {
radio.checked = true;
break;
}
}
}
selectRadioByValue("gender", "female");


3. jQuery 방식



// ID로 선택
$("#male").prop("checked", true);

// 값으로 선택
$("input[name=gender][value=male]").prop("checked", true);

// attr 대신 prop 사용 (jQuery 1.6+)
$("input[name=gender]:first").prop("checked", true);

// 동적으로 값 설정
const selectedValue = "female";
$("input[name=gender][value=" + selectedValue + "]").prop("checked", true);

// trigger로 change 이벤트 발생
$("input[name=gender][value=male]").prop("checked", true).trigger("change");


4. 현재 선택된 값 가져오기



// 순수 JavaScript
const selected = document.querySelector("input[name=gender]:checked");
if (selected) {
console.log(selected.value);
}

// jQuery
const value = $("input[name=gender]:checked").val();
console.log(value);


5. 선택 변경 이벤트



// 순수 JavaScript
document.querySelectorAll("input[name=gender]").forEach(radio => {
radio.addEventListener("change", function() {
console.log("선택됨:", this.value);
});
});

// jQuery
$("input[name=gender]").on("change", function() {
console.log("선택됨:", $(this).val());
});


6. 동적 라디오 버튼 생성 및 선택



// 동적 생성
const options = ["옵션1", "옵션2", "옵션3"];
const container = document.getElementById("container");

options.forEach((opt, idx) => {
const radio = document.createElement("input");
radio.type = "radio";
radio.name = "dynamic";
radio.value = opt;
radio.id = "opt" + idx;

const label = document.createElement("label");
label.htmlFor = "opt" + idx;
label.textContent = opt;

container.appendChild(radio);
container.appendChild(label);
});

// 첫 번째 자동 선택
document.querySelector("input[name=dynamic]").checked = true;


7. 폼 제출 시 검증



// 선택 여부 확인
function validateRadio() {
const selected = document.querySelector("input[name=gender]:checked");
if (!selected) {
alert("성별을 선택해주세요");
return false;
}
return true;
}

// 폼 제출
document.getElementById("myForm").addEventListener("submit", function(e) {
if (!validateRadio()) {
e.preventDefault();
}
});


attr vs prop 차이







메서드용도예시
attr()HTML 속성초기값
prop()DOM 속성현재 상태 (권장)


주의사항




  • jQuery 1.6+에서는 checked에 prop() 사용

  • change 이벤트는 사용자 클릭 시만 발생

  • 프로그래밍 변경 시 trigger("change") 필요

Share this

FrontEnd

Have a questions?

견적 및 기술문의

mobile : 010-7931-4813

Contact Form