λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
μΉ΄ν…Œκ³ λ¦¬ μ—†μŒ

λΌλ””μ˜€ λ²„νŠΌ λ§Œλ“€κΈ° (input type="radio")

by 5566 2023. 8. 9.

1. λŒ€μ£Όμ œ: λΌλ””μ˜€ λ²„νŠΌμ˜ μ‚¬μš© μš©λ„μ™€ μž₯점

λΌλ””μ˜€ λ²„νŠΌμ€ μ›Ή νΌμ—μ„œ 선택 μ˜΅μ…˜μ„ μ œκ³΅ν•˜κ³  μ‚¬μš©μžκ°€ ν•œ 가지 μ˜΅μ…˜λ§Œ 선택할 수 μžˆλŠ” 데에 μ‚¬μš©λ©λ‹ˆλ‹€. λ‹€λ₯Έ 선택 μ˜΅μ…˜κ³ΌλŠ” 달리, λΌλ””μ˜€ λ²„νŠΌμ€ μƒν˜Έ 배제(exclusive)λ˜λŠ” 관계λ₯Ό 가지고 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” μ‚¬μš©μžμ—κ²Œ 선택할 수 μžˆλŠ” μ˜΅μ…˜ μ€‘μ—μ„œ 단 ν•˜λ‚˜μ˜ μ˜΅μ…˜λ§Œ 선택할 수 μžˆλ„λ‘ ν•˜λŠ”λ° μžˆμ–΄ 맀우 μœ μš©ν•©λ‹ˆλ‹€.

λΌλ””μ˜€ λ²„νŠΌμ€ 주둜 λ‹€μŒκ³Ό 같은 μš©λ„λ‘œ μ‚¬μš©λ©λ‹ˆλ‹€.

1.1. μ˜΅μ…˜ 선택

λΌλ””μ˜€ λ²„νŠΌμ€ μ‚¬μš©μžμ—κ²Œ μ—¬λŸ¬ 가지 μ˜΅μ…˜ μ€‘μ—μ„œ ν•˜λ‚˜μ˜ μ˜΅μ…˜μ„ μ„ νƒν•˜λ„λ‘ μ•ˆλ‚΄ν•˜λŠ” κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, 성별을 μ„ νƒν•˜λŠ” μ˜΅μ…˜μœΌλ‘œλŠ” '남성'κ³Ό 'μ—¬μ„±'이 μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. μ‚¬μš©μžλŠ” 이 μ€‘μ—μ„œ ν•˜λ‚˜μ˜ μ˜΅μ…˜μ„ 선택할 수 있으며, λ‹€λ₯Έ μ˜΅μ…˜μ„ μ„ νƒν•˜λ©΄ 이전에 μ„ νƒν•œ μ˜΅μ…˜μ΄ μ·¨μ†Œλ˜κ³  μƒˆλ‘œ μ„ νƒν•œ μ˜΅μ…˜μ΄ μ„ νƒλ˜κ²Œ λ©λ‹ˆλ‹€.

1.2. 닀쀑 선택 μ œν•œ

λΌλ””μ˜€ λ²„νŠΌμ€ 닀쀑 선택을 μ œν•œν•˜λŠ” μš©λ„λ‘œ 많이 μ‚¬μš©λ©λ‹ˆλ‹€. μ‚¬μš©μžκ°€ μ—¬λŸ¬ μ˜΅μ…˜μ„ 선택할 수 μžˆλŠ” μ²΄ν¬λ°•μŠ€μ™€λŠ” 달리, λΌλ””μ˜€ λ²„νŠΌμ€ μœ μ €κ°€ 였직 ν•˜λ‚˜μ˜ μ˜΅μ…˜λ§Œ 선택할 수 μžˆλ„λ‘ μ œν•œμ„ λ‘‘λ‹ˆλ‹€. 이λ₯Ό 톡해 μ‚¬μš©μžμ˜ 행동을 λ”μš± λͺ…ν™•ν•˜κ²Œ μ΄ν•΄ν•˜κ³ , μ²˜λ¦¬ν•˜κΈ° 쉽도둝 ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

1.3. μ‹œκ°μ  ν‘œν˜„

λΌλ””μ˜€ λ²„νŠΌμ€ μ‚¬μš©μžμ—κ²Œ μ˜΅μ…˜μ„ μ‹œκ°μ μœΌλ‘œ ν‘œμ‹œν•˜λŠ” 데에도 μ‚¬μš©λ©λ‹ˆλ‹€. μ—¬λŸ¬ 가지 선택 μ˜΅μ…˜μ„ λ‚˜μ—΄ν•  λ•Œ, λΌλ””μ˜€ λ²„νŠΌμ€ 선택 κ°€λŠ₯ν•œ μ˜΅μ…˜μ„ λͺ©λ‘μœΌλ‘œ ν‘œμ‹œν•˜κ³  이λ₯Ό 톡해 μ‚¬μš©μžκ°€ μ§κ΄€μ μœΌλ‘œ 선택할 수 μžˆλ„λ‘ λ„μ™€μ€λ‹ˆλ‹€. μ‚¬μš©μžκ°€ 이미 μ„ νƒν•œ μ˜΅μ…˜μ€ μ„ νƒλœ μƒνƒœλ‘œ ν‘œμ‹œλ˜λ―€λ‘œ, μ‚¬μš©μžκ°€ μ„ νƒν•œ μ˜΅μ…˜μ„ ν•œλˆˆμ— νŒŒμ•…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λΌλ””μ˜€ λ²„νŠΌμ€ ν•œ 가지 μ˜΅μ…˜λ§Œ 선택할 수 μžˆλ‹€λŠ” μ œμ•½μ΄ μžˆμ§€λ§Œ, μ΄λŠ” μ–΄λ–€ μƒν™©μ—μ„œλŠ” 였히렀 μ‚¬μš©μž κ²½ν—˜μ„ ν–₯μƒμ‹œν‚€λŠ”λ° 도움이 λ©λ‹ˆλ‹€. μ‚¬μš©μžκ°€ λΉ λ₯΄κ³  κ°„νŽΈν•˜κ²Œ μ˜³μ€ 선택을 ν•  수 μžˆλ„λ‘ ν•˜λŠ” λΌλ””μ˜€ λ²„νŠΌμ€ λ§Žμ€ μ›Ή νΌμ—μ„œ ν•„μˆ˜μ μΈ μš”μ†Œ 쀑 ν•˜λ‚˜λ‘œ μ•Œλ €μ Έ μžˆμŠ΅λ‹ˆλ‹€.

2. λŒ€μ£Όμ œ: HTMLμ—μ„œ λΌλ””μ˜€ λ²„νŠΌ μƒμ„±ν•˜κΈ°

HTMLμ—μ„œ λΌλ””μ˜€ λ²„νŠΌμ„ μƒμ„±ν•˜κΈ° μœ„ν•΄μ„œλŠ” <input> μš”μ†Œλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€. <input> μš”μ†ŒλŠ” μ‚¬μš©μžλ‘œλΆ€ν„° 데이터λ₯Ό μž…λ ₯받을 수 μžˆλŠ” λ‹€μ–‘ν•œ ν˜•μ‹μ˜ μž…λ ₯ ν•„λ“œλ₯Ό μƒμ„±ν•˜λŠ” 데에 μ‚¬μš©λ©λ‹ˆλ‹€. λΌλ””μ˜€ λ²„νŠΌμ€ <input> μš”μ†Œμ˜ type 속성을 "radio"둜 μ„€μ •ν•˜μ—¬ 생성할 수 μžˆμŠ΅λ‹ˆλ‹€.

λ‹€μŒμ€ HTMLμ—μ„œ λΌλ””μ˜€ λ²„νŠΌμ„ μƒμ„±ν•˜λŠ” λ°©λ²•μ˜ μ˜ˆμ‹œμž…λ‹ˆλ‹€:

<input type="radio" name="gender" value="male">
<label for="male">Male</label>

<input type="radio" name="gender" value="female">
<label for="female">Female</label>

μœ„μ˜ μ½”λ“œμ—μ„œ type="radio"λŠ” λΌλ””μ˜€ λ²„νŠΌμ„ μƒμ„±ν•˜λΌλŠ” μ§€μ‹œλ₯Ό λ‚΄λ¦¬λŠ” μš”μ†Œμž…λ‹ˆλ‹€. name 속성은 같은 이름을 κ°€μ§€λŠ” λΌλ””μ˜€ λ²„νŠΌλ“€μ„ λ¬Άμ–΄μ£ΌλŠ” 역할을 ν•©λ‹ˆλ‹€. 이둜써 같은 κ·Έλ£Ή λ‚΄μ—μ„œλŠ” ν•˜λ‚˜μ˜ λΌλ””μ˜€ λ²„νŠΌλ§Œ 선택할 수 μžˆλŠ” μƒν˜Έ 배제 관계가 ν˜•μ„±λ©λ‹ˆλ‹€.

value 속성은 λΌλ””μ˜€ λ²„νŠΌμ΄ μ„ νƒλ˜μ—ˆμ„ λ•Œ ν•΄λ‹Ήν•˜λŠ” κ°’μž…λ‹ˆλ‹€. 이 값은 폼을 μ œμΆœν•  λ•Œ μ„œλ²„λ‘œ μ „μ†‘λ˜λŠ” λ°μ΄ν„°μ˜ μΌλΆ€λ‘œ μ‚¬μš©λ  수 μžˆμŠ΅λ‹ˆλ‹€.

라벨(<label>) μš”μ†ŒλŠ” λΌλ””μ˜€ λ²„νŠΌμ˜ μ„€λͺ…을 μ œκ³΅ν•˜λŠ” 역할을 ν•©λ‹ˆλ‹€. for 속성은 λΌλ””μ˜€ λ²„νŠΌκ³Ό μ—°κ²°λœ 라벨을 μ§€μ •ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€. 이λ₯Ό 톡해 μ‚¬μš©μžκ°€ λΌλ””μ˜€ λ²„νŠΌμ„ μ„ νƒν•˜λ €κ³  ν•  λ•Œ 라벨을 클릭해도 ν•΄λ‹Ή λΌλ””μ˜€ λ²„νŠΌμ΄ μ„ νƒλ˜λ„λ‘ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μœ„μ˜ μ˜ˆμ‹œ μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λ©΄, 'Male'κ³Ό 'Female' μ€‘μ—μ„œ ν•˜λ‚˜μ˜ μ˜΅μ…˜μ„ 선택할 수 μžˆλŠ” λΌλ””μ˜€ λ²„νŠΌμ΄ μƒμ„±λ©λ‹ˆλ‹€. μ‚¬μš©μžκ°€ μ˜΅μ…˜μ„ μ„ νƒν•˜λ©΄ ν•΄λ‹Ήν•˜λŠ” 값이 폼 데이터에 ν¬ν•¨λ˜μ–΄ μ„œλ²„λ‘œ μ „μ†‘λ©λ‹ˆλ‹€. μ΄λ ‡κ²Œ HTMLμ—μ„œ λΌλ””μ˜€ λ²„νŠΌμ„ μƒμ„±ν•˜μ—¬ μ‚¬μš©μžμ—κ²Œ 선택 μ˜΅μ…˜μ„ μ œκ³΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

3. λŒ€μ£Όμ œ: λΌλ””μ˜€ λ²„νŠΌμ˜ 속성과 κΈ°λŠ₯

λΌλ””μ˜€ λ²„νŠΌμ€ <input> μš”μ†Œλ₯Ό μ‚¬μš©ν•˜μ—¬ μƒμ„±λ˜λ©°, λ‹€μ–‘ν•œ 속성을 톡해 ν•΄λ‹Ή λ²„νŠΌμ˜ λ™μž‘κ³Ό λͺ¨μ–‘을 μ œμ–΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이번 μ„Ήμ…˜μ—μ„œλŠ” λΌλ””μ˜€ λ²„νŠΌμ˜ μ£Όμš” 속성과 κΈ°λŠ₯에 λŒ€ν•΄ μƒμ„Έν•˜κ²Œ μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€.

3.1. type 속성

λΌλ””μ˜€ λ²„νŠΌμ„ μƒμ„±ν•˜κΈ° μœ„ν•΄ <input> μš”μ†Œλ₯Ό μ‚¬μš©ν•˜λŠ”λ°, type 속성을 "radio"둜 μ„€μ •ν•˜μ—¬ λΌλ””μ˜€ λ²„νŠΌμ„ 생성할 수 μžˆμŠ΅λ‹ˆλ‹€.

<input type="radio">

3.2. name 속성

같은 그룹에 μ†ν•˜λŠ” λΌλ””μ˜€ λ²„νŠΌλ“€μ„ λ¬ΆκΈ° μœ„ν•΄ name 속성을 μ‚¬μš©ν•©λ‹ˆλ‹€. λ™μΌν•œ name 속성을 가진 λΌλ””μ˜€ λ²„νŠΌλ“€μ€ μƒν˜Έ 배제(exclusive)λ˜λŠ” 관계λ₯Ό ν˜•μ„±ν•˜κ²Œ λ©λ‹ˆλ‹€. μ‚¬μš©μžλŠ” κ·Έλ£Ή λ‚΄μ—μ„œ ν•˜λ‚˜μ˜ μ˜΅μ…˜λ§Œ 선택할 수 μžˆμŠ΅λ‹ˆλ‹€.

<input type="radio" name="gender" value="male">
<input type="radio" name="gender" value="female">

3.3. value 속성

λΌλ””μ˜€ λ²„νŠΌμ΄ μ„ νƒλ˜μ—ˆμ„ λ•Œ ν•΄λ‹Ήν•˜λŠ” 값을 μ§€μ •ν•˜κΈ° μœ„ν•΄ value 속성을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 값을 폼을 μ œμΆœν•  λ•Œ μ„œλ²„λ‘œ μ „μ†‘λ˜λŠ” λ°μ΄ν„°μ˜ μΌλΆ€λ‘œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

<input type="radio" name="gender" value="male">
<input type="radio" name="gender" value="female">

3.4. checked 속성

HTML둜 λΌλ””μ˜€ λ²„νŠΌμ„ 생성할 λ•Œ, 사전에 μ„ νƒλ˜μ–΄μ•Ό ν•˜λŠ” μ˜΅μ…˜μ„ μ„€μ •ν•˜κΈ° μœ„ν•΄ checked 속성을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. checked 속성을 μΆ”κ°€ν•˜λ©΄ ν•΄λ‹Ή λΌλ””μ˜€ λ²„νŠΌμ€ μ΄ˆκΈ°λ‘œλ”© μ‹œμ— μ„ νƒλœ μƒνƒœλ‘œ ν‘œμ‹œλ©λ‹ˆλ‹€.

<input type="radio" name="gender" value="male" checked>
<input type="radio" name="gender" value="female">

3.5. 라벨과 μ—°κ²°

λΌλ””μ˜€ λ²„νŠΌμ— λŒ€ν•œ μ„€λͺ…을 μ œκ³΅ν•˜κΈ° μœ„ν•΄ <label> μš”μ†Œμ™€ μ—°κ²°ν•¨μœΌλ‘œμ¨ μ‚¬μš©μžκ°€ 클릭해도 λΌλ””μ˜€ λ²„νŠΌμ΄ μ„ νƒλ˜λ„λ‘ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. <label> μš”μ†Œμ˜ for 속성을 μ‚¬μš©ν•˜μ—¬ μ—°κ²°λœ λΌλ””μ˜€ λ²„νŠΌμ˜ id 값을 μ§€μ •ν•©λ‹ˆλ‹€.

<input type="radio" name="gender" value="male" id="male">
<label for="male">Male</label>

<input type="radio" name="gender" value="female" id="female">
<label for="female">Female</label>

λΌλ””μ˜€ λ²„νŠΌμ€ μ˜³μ€ 선택을 μœ λ„ν•˜κ³  μ‚¬μš©μžκ°€ μ—¬λŸ¬ μ˜΅μ…˜ 쀑 ν•˜λ‚˜λ§Œ 선택할 수 μžˆλ„λ‘ ν•˜λŠ”λ° 도움을 μ€λ‹ˆλ‹€. λ˜ν•œ, λΌλ””μ˜€ λ²„νŠΌμ€ μ‚¬μš©μžμ—κ²Œ κ°„νŽΈν•˜κ²Œ μ‹œκ°μ μœΌλ‘œ ν‘œμ‹œλ˜λ―€λ‘œ 직관적인 μ‚¬μš©μž κ²½ν—˜μ„ μ œκ³΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ 속성과 κΈ°λŠ₯을 ν™œμš©ν•˜μ—¬ μ›Ή νΌμ—μ„œ λ‹€μ–‘ν•œ 선택 μ˜΅μ…˜μ„ μ œκ³΅ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

4. λŒ€μ£Όμ œ: λΌλ””μ˜€ λ²„νŠΌμ˜ λ””μžμΈ 및 λ°°μΉ˜μ— λŒ€ν•œ 고렀사항

λΌλ””μ˜€ λ²„νŠΌμ€ μ›Ή νΌμ—μ„œ 선택 μ˜΅μ…˜μ„ μ œκ³΅ν•˜κΈ° μœ„ν•œ μ€‘μš”ν•œ μ»΄ν¬λ„ŒνŠΈλ‘œ μ‚¬μš©λ©λ‹ˆλ‹€. λ”°λΌμ„œ λΌλ””μ˜€ λ²„νŠΌμ˜ λ””μžμΈκ³Ό λ°°μΉ˜λŠ” μ‚¬μš©μž κ²½ν—˜κ³Ό μ‹œκ°μ μΈ νš¨κ³Όμ— 큰 영ν–₯을 μ€λ‹ˆλ‹€. 이번 μ„Ήμ…˜μ—μ„œλŠ” λΌλ””μ˜€ λ²„νŠΌμ˜ λ””μžμΈκ³Ό λ°°μΉ˜μ— λŒ€ν•œ 고렀사항을 μƒμ„Έν•˜κ²Œ μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€.

4.1. λ””μžμΈ

λΌλ””μ˜€ λ²„νŠΌμ˜ λ””μžμΈμ€ μ‚¬μš©μžμ—κ²Œ 선택 κ°€λŠ₯ν•œ μ˜΅μ…˜μ„ μ‹œκ°μ μœΌλ‘œ λ‚˜νƒ€λ‚΄λŠ” 역할을 ν•©λ‹ˆλ‹€. λ””μžμΈμ— λŒ€ν•œ λͺ‡ 가지 고렀사항은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

  • 크기 : λΌλ””μ˜€ λ²„νŠΌμ˜ ν¬κΈ°λŠ” μΆ©λΆ„νžˆ 크게 μ„€μ •ν•˜μ—¬ μ‚¬μš©μžκ°€ μ‰½κ²Œ 선택할 수 μžˆλ„λ‘ ν•΄μ•Ό ν•©λ‹ˆλ‹€. 일반적으둜 κΈ°λ³Έ 크기둜 μ„€μ •λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
  • 컬러 : λΌλ””μ˜€ λ²„νŠΌμ˜ μ»¬λŸ¬λŠ” μ›Ή μ‚¬μ΄νŠΈ λ˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ λΈŒλžœλ”©κ³Ό μΌμΉ˜ν•˜λ„λ‘ μ„ νƒλ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€. μ‚¬μš©μžμ—κ²Œ μ‹œκ°μ μΈ μœ μ‚¬μ„±κ³Ό 일관성을 μ œκ³΅ν•©λ‹ˆλ‹€.
  • μ•„μ΄μ½˜ : λΌλ””μ˜€ λ²„νŠΌμ˜ λ””μžμΈμ— μ•„μ΄μ½˜μ„ μΆ”κ°€ν•˜μ—¬ 선택 μƒνƒœλ₯Ό λ‚˜νƒ€λ‚Ό 수 μžˆμŠ΅λ‹ˆλ‹€. μ„ νƒλœ λ²„νŠΌμ—λŠ” 체크 ν‘œμ‹œ λ˜λŠ” 동그라미가 ν‘œμ‹œλ  수 μžˆμŠ΅λ‹ˆλ‹€.

4.2. 배치

λΌλ””μ˜€ λ²„νŠΌμ˜ λ°°μΉ˜λŠ” μ‚¬μš©μžμ—κ²Œ 선택 μ˜΅μ…˜μ„ μ œκ³΅ν•˜λŠ”λ° μžˆμ–΄ μ€‘μš”ν•œ 역할을 ν•©λ‹ˆλ‹€. μ μ ˆν•œ 배치λ₯Ό μœ„ν•œ λͺ‡ 가지 고렀사항은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€:

  • λ ˆμ΄μ•„μ›ƒ : λΌλ””μ˜€ λ²„νŠΌμ€ 보톡 μ‚¬μš©μžκ°€ μ‰½κ²Œ 찾을 수 μžˆλŠ” μœ„μΉ˜μ— λ°°μΉ˜λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€. 주둜 폼 μœ„μͺ½μ΄λ‚˜ μ™Όμͺ½μ— λ°°μΉ˜ν•˜λŠ” 것이 μΌλ°˜μ μž…λ‹ˆλ‹€. λΌλ””μ˜€ λ²„νŠΌμ„ 그룹으둜 묢을 λ•ŒλŠ” κ·Έλ£Ήλͺ…μ΄λ‚˜ μ„€λͺ…κ³Ό ν•¨κ»˜ λ°°μΉ˜ν•˜μ—¬ μ‚¬μš©μžκ°€ μ˜΅μ…˜μ„ 이해할 수 μžˆλ„λ‘ ν•©λ‹ˆλ‹€.
  • μ •λ ¬ : λΌλ””μ˜€ λ²„νŠΌμ€ 보톡 수직 λ°©ν–₯으둜 μ •λ ¬λ˜μ–΄ ν‘œμ‹œλ©λ‹ˆλ‹€. κ²½ν—˜μ΄ ν’λΆ€ν•˜κ³  κΈ΄ λͺ©λ‘μ—μ„œλŠ” μˆ˜ν‰μœΌλ‘œ μ •λ ¬ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. 이 경우 짧은 ν…μŠ€νŠΈμ™€ ν•¨κ»˜ μ‚¬μš©ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.
  • 간격 : λΌλ””μ˜€ λ²„νŠΌ μ‚¬μ΄μ˜ 간격을 적절히 μ„€μ •ν•˜μ—¬ μ‚¬μš©μžκ°€ λ²„νŠΌμ„ μ‰½κ²Œ κ΅¬λ³„ν•˜κ³  선택할 수 μžˆλ„λ‘ ν•©λ‹ˆλ‹€. 일반적으둜 λ²„νŠΌ μ‚¬μ΄μ˜ 간격은 상황에 따라 λ‹€λ₯Ό 수 μžˆμŠ΅λ‹ˆλ‹€.

λΌλ””μ˜€ λ²„νŠΌμ˜ λ””μžμΈκ³Ό λ°°μΉ˜λŠ” ν•΄λ‹Ή μ›Ή νŽ˜μ΄μ§€ λ˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μ‚¬μš©μ„±κ³Ό μ‹œκ°μ μΈ νš¨κ³Όμ— 큰 영ν–₯을 μ€λ‹ˆλ‹€. μ‚¬μš©μžκ°€ μ‰½κ²Œ 찾을 수 μžˆλ„λ‘ λ°°μΉ˜ν•˜κ³  선택 μ˜΅μ…˜μ„ λͺ…ν™•ν•˜κ²Œ λ³΄μ—¬μ£ΌλŠ” λ””μžμΈμ„ μ„ νƒν•¨μœΌλ‘œμ¨, λͺ©μ μ— λ§žλŠ” λΌλ””μ˜€ λ²„νŠΌμ„ κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

5. λŒ€μ£Όμ œ: λΌλ””μ˜€ λ²„νŠΌκ³Ό κ΄€λ ¨λœ ν”„λ‘œκ·Έλž˜λ° μš”μ†Œ μ΄ν•΄ν•˜κΈ°

λΌλ””μ˜€ λ²„νŠΌμ€ μ›Ή νΌμ—μ„œ 선택 μ˜΅μ…˜μ„ κ΅¬ν˜„ν•˜κΈ° μœ„ν•œ μ€‘μš”ν•œ μ»΄ν¬λ„ŒνŠΈμ΄λ©°, ν•΄λ‹Ή μ˜΅μ…˜μ„ μ²˜λ¦¬ν•˜κΈ° μœ„ν•΄ λͺ‡ 가지 ν”„λ‘œκ·Έλž˜λ° μš”μ†Œλ₯Ό 이해해야 ν•©λ‹ˆλ‹€. 이번 μ„Ήμ…˜μ—μ„œλŠ” λΌλ””μ˜€ λ²„νŠΌκ³Ό κ΄€λ ¨λœ ν”„λ‘œκ·Έλž˜λ° μš”μ†Œλ₯Ό μƒμ„Έν•˜κ²Œ μ„€λͺ…ν•˜κ² μŠ΅λ‹ˆλ‹€.

5.1. 이벀트 λ¦¬μŠ€λ„ˆ

λΌλ””μ˜€ λ²„νŠΌμ€ 클릭 λ˜λŠ” μ„ νƒλ˜μ—ˆμ„ λ•Œ νŠΉμ • λ™μž‘μ„ μˆ˜ν–‰ν•΄μ•Ό ν•˜λŠ” κ²½μš°κ°€ λ§ŽμŠ΅λ‹ˆλ‹€. 이λ₯Ό μœ„ν•΄ λΌλ””μ˜€ λ²„νŠΌμ— 이벀트 λ¦¬μŠ€λ„ˆλ₯Ό μΆ”κ°€ν•˜μ—¬ μ›ν•˜λŠ” λ™μž‘μ„ κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

// λΌλ””μ˜€ λ²„νŠΌ μš”μ†Œ 선택
const radioButtons = document.querySelectorAll('input[type="radio"]');

// 이벀트 λ¦¬μŠ€λ„ˆ μΆ”κ°€
radioButtons.forEach((radioButton) => {
  radioButton.addEventListener('click', (event) => {
    // μ„ νƒλœ λΌλ””μ˜€ λ²„νŠΌμ˜ 값을 κ°€μ Έμ™€μ„œ 처리
    const selectedValue = event.target.value;
    // μ›ν•˜λŠ” λ™μž‘ κ΅¬ν˜„
    console.log('Selected value:', selectedValue);
  });
});

5.2. μƒνƒœ μ €μž₯ 및 관리

λΌλ””μ˜€ λ²„νŠΌμ€ ν•œ λ²ˆμ— ν•˜λ‚˜μ˜ μ˜΅μ…˜λ§Œ 선택할 수 μžˆλŠ” κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€. λ”°λΌμ„œ, μ‚¬μš©μžκ°€ μ„ νƒν•œ λΌλ””μ˜€ λ²„νŠΌμ˜ μƒνƒœλ₯Ό μ €μž₯ν•˜κ³  ν•„μš”ν•œ 경우 ν•΄λ‹Ή μƒνƒœλ₯Ό 관리해야 ν•©λ‹ˆλ‹€.

// μ„ νƒλœ λΌλ””μ˜€ λ²„νŠΌμ˜ μƒνƒœ μ €μž₯ λ³€μˆ˜
let selectedOption = '';

// 이벀트 λ¦¬μŠ€λ„ˆ μΆ”κ°€
radioButtons.forEach((radioButton) => {
  radioButton.addEventListener('click', (event) => {
    // μ„ νƒλœ λΌλ””μ˜€ λ²„νŠΌμ˜ 값을 μ €μž₯
    selectedOption = event.target.value;
    // μ›ν•˜λŠ” λ™μž‘ κ΅¬ν˜„
    console.log('Selected option:', selectedOption);
  });
});

5.3. 폼 제좜 μ‹œ 선택 κ°’ 전솑

λΌλ””μ˜€ λ²„νŠΌμ˜ 값을 폼을 μ œμΆœν•  λ•Œ μ„œλ²„λ‘œ 전솑해야 ν•˜λŠ” κ²½μš°κ°€ λ§ŽμŠ΅λ‹ˆλ‹€. 이λ₯Ό μœ„ν•΄ μ„ νƒλœ λΌλ””μ˜€ λ²„νŠΌμ˜ 값을 폼 데이터에 μΆ”κ°€ν•˜κ³  μ„œλ²„λ‘œ 전솑할 수 μžˆμŠ΅λ‹ˆλ‹€.

<form id="myForm">
  <input type="radio" name="gender" value="male">
  <input type="radio" name="gender" value="female">
  <button type="submit">Submit</button>
</form>
// 폼 μš”μ†Œ 선택
const form = document.getElementById('myForm');

// 폼 제좜 이벀트 λ¦¬μŠ€λ„ˆ μΆ”κ°€
form.addEventListener('submit', (event) => {
  // μ„ νƒλœ λΌλ””μ˜€ λ²„νŠΌμ˜ 값을 폼 데이터에 μΆ”κ°€
  const selectedOption = document.querySelector('input[name="gender"]:checked').value;
  const formData = new FormData(form);
  formData.append('gender', selectedOption);

  // μ„œλ²„λ‘œ 폼 데이터 전솑
  fetch('/submit', {
    method: 'POST',
    body: formData
  })
    .then((response) => {
      // 응닡 처리
      console.log('Data submitted successfully');
    })
    .catch((error) => {
      // μ—λŸ¬ 처리
      console.error('Error submitting data:', error);
    });

  event.preventDefault(); // 폼 κΈ°λ³Έ λ™μž‘ 방지
});

λΌλ””μ˜€ λ²„νŠΌκ³Ό κ΄€λ ¨λœ ν”„λ‘œκ·Έλž˜λ° μš”μ†Œλ₯Ό μ΄ν•΄ν•˜μ—¬ ν•„μš”ν•œ 이벀트λ₯Ό μ²˜λ¦¬ν•˜κ³  μ„ νƒλœ κ°’μ˜ μƒνƒœλ₯Ό μ €μž₯ν•˜λ©°, 폼 제좜 μ‹œμ—λ„ μ„ νƒλœ 값을 적절히 μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 λΌλ””μ˜€ λ²„νŠΌμ„ ν¬ν•¨ν•˜λŠ” μ›Ή νΌμ—μ„œ λ‹€μ–‘ν•œ μ‚¬μš©μž μž…λ ₯을 μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λŒ“κΈ€