정의 및 사용 방법
<input> 태그의 type="radio"는 라디오 버튼을 나타냅니다.
일반적으로 그룹화된 라디오 버튼을 사용하며, 주어진 그룹에서 하나의 라디오 버튼만을 선택할 수 있습니다.
이렇게 구현하려면 <fieldset> 태그로 그룹화된 라디오 버튼에는 모든 동일한 name 속성과 값을 지정해야 하지만, value 속성의 값은 각각 지정합니다.
name 속성은 컨트롤의 이름을 나타냅니다.
양식이 제출될 때 이 이름이 컨트롤을 식별하는데 사용됩니다.
기본 예제
<fieldset>
<legend>관심이 있는 웹 개발 언어를 선택하세요.</legend>
<div>
<input type="radio" id="html" name="interest" value="html">
<label for="html">HTML</label>
</div>
<div>
<input type="radio" id="css" name="interest" value="interest">
<label for="css">CSS</label>
</div>
<div>
<input type="radio" id="js" name="interest" value="interest">
<label for="js">JavaScript</label>
</div>
</fieldset>
<input type="radio">의 암시적인 role 속성의 값은 radio입니다.
관련 속성 사용하기
<input type="radio">와 관련된 속성에 대해 알아보겠습니다.
checked 속성
이 속성은 부울 속성(boolean attribute)입니다. 값을 별도로 작성하지 않고 속성만 작성합니다.
<input type="radio" checked>
disabled 속성
라디오 버튼을 비활성시키려면 disabled 속성을 사용하세요.
이 속성은 부울 속성(boolean attribute)입니다. 값을 별도로 작성하지 않고 속성만 작성합니다.
<input type="radio" disabled>
required 속성
required 속성은 폼 제출 시 사용자가 사전에 반드시 체트박스에 체크해야 하는 필수(required) 컨트롤 요소임을 나타냅니다. 이 속성은 부울 속성(boolean attribute)입니다. 값을 별도로 작성하지 않고 속성만 작성합니다.
그룹 내에서 최소한 하나의 라디오 버튼에 지정
라디오 그룹 내에서 최소한 하나의 라디오 버튼을 선택해서 required 속성 적용하면 라디오 버튼 그룹 전체가 필수 항목으로 그룹핑됩니다.
<form>
<fieldset>
<legend>색상 선택은 필수</legend>
<p>
<input id="red" type="radio" name="color" required> <!-- 그룹 내에서 최소한 하나의 라디오 버튼을 선택 -->
<label for="red">Red</label>
</p>
<p>
<input id="red" type="radio" name="color">
<label for="green">Green</label>
</p>
<p>
<input id="red" type="radio" name="color">
<label for="blue">Blue</label>
</p>
<p>
<button type="submit">제출</button>
</p>
</fieldset>
</form>
브라우저가 필수 입력에 대한 오류 메시지를 표시하는 것을 확인할 수 있습니다.
그룹 내에 속한 모든 라디오 버튼에 지정
코드의 가독성을 위해 라디오 버튼 그룹에 속해 있는 모든 라디오 버튼에 required 속성을 적용하는 것이 더 좋습니다.
<form>
<fieldset>
<legend>색상 선택은 필수</legend>
<p>
<input id="red" type="radio" name="color" required>
<label for="red">Red</label>
</p>
<p>
<input id="red" type="radio" name="color" required>
<label for="green">Green</label>
</p>
<p>
<input id="red" type="radio" name="color" required>
<label for="blue">Blue</label>
</p>
<p>
<button type="submit">제출</button>
</p>
</fieldset>
</form>
브라우저가 필수 입력에 대한 오류 메시지를 표시하는 것을 확인할 수 있습니다.
체크박스와의 차이점
체크박스는 라디오 버튼과 유사하지만 중요한 차이점이 있습니다.
체크박스는 <input type="checkbox">로 나타냅니다.
단일한 컨트롤에 체크와 체크 해제
| 라디오 버튼 | 단일한 라디오 버튼에 번갈아가며 체크와 체크 해제를 할 수 없습니다. |
|---|---|
| 체크박스 | 단일한 체크박스에 번갈아가며 체크와 체크 해제를 할 수 있습니다. |
<input type="radio">
<input type="checkbox">
그룹화된 여러개의 컨트롤로 체크하기
그룹화된 여러 개의 체크박스를 사용할 경우 사용자는 각각의 체크 박스를 복수로 선택할 수 있는 반면에 라디오 버튼은 전체 중에서 하나만 선택이 가능해야 합니다.
이렇게 구현하려면 <fieldset> 태그로 그룹화된 체크박스나 라디오 버튼에는 모든 동일한 name 속성과 값을 지정해야 하지만, value 속성의 값은 각각 지정합니다.
<fieldset>
<legend>관심이 있는 웹 개발 언어를 선택하세요.</legend>
<div>
<input type="checkbox" id="html" name="interest" value="html">
<label for="html">HTML</label>
</div>
<div>
<input type="checkbox" id="css" name="interest" value="interest">
<label for="css">CSS</label>
</div>
<div>
<input type="checkbox" id="js" name="interest" value="interest">
<label for="js">JavaScript</label>
</div>
</fieldset>
접근성 고려 사항
<input type="radio">를 사용할 때에는 <label>을 함께 사용해야 합니다.
자세한 사항은 <input> 태그의 접근성 고려 사항을 참조하세요.
브라우저 호환성
| 속성 |
데스크탑 Chrome
|
데스크탑데스크탑 Edge
|
데스크탑 Firefox
|
Safari
|
|---|---|---|---|---|
<input type="radio"> |
1 | 12 | 1 | 1 |
checked
|
1 | 12 | 1 | 1 |
disabled
|
1 | 12 | 1 | 1 |
name
|
1 | 12 | 1 | 1 |
명세서
| 명세서 사양 | |
|---|---|
<input type="radio">
|
HTML Standard #radio-button-state-(type=radio) |