์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฒดํฌ๋ฐ•์Šค ์ฒดํฌ ์—ฌ๋ถ€ ํ™•์ธ ์™„๋ฒฝ ๊ฐ€์ด๋“œ

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฒดํฌ๋ฐ•์Šค ์ฒดํฌ ์—ฌ๋ถ€ ํ™•์ธ ์™„๋ฒฝ ๊ฐ€์ด๋“œ

D
dongAuthor
5 min read

ํŠธ ๋ฆฌ์Šค๋„ˆ, prop(), is() ์‚ฌ์šฉ๋ฒ•์„ ์˜ˆ์ œ์™€ ํ•จ๊ป˜ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์›น ๊ฐœ๋ฐœ์—์„œ ์‚ฌ์šฉ์ž์™€์˜ ์ƒํ˜ธ์ž‘์šฉ์€ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ฒดํฌ๋ฐ•์Šค๋Š” ์‚ฌ์šฉ์ž์˜ ๋™์˜๋ฅผ ์–ป๊ฑฐ๋‚˜, ์—ฌ๋Ÿฌ ์˜ต์…˜ ์ค‘ ํ•˜๋‚˜ ๋˜๋Š” ๋‹ค์ˆ˜๋ฅผ ์„ ํƒํ•˜๊ฒŒ ํ•˜๋Š” ๋“ฑ ๊ฐ„๋‹จํ•˜๋ฉด์„œ๋„ ํ•„์ˆ˜์ ์ธ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค(UI) ์š”์†Œ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด โ€˜์ด์šฉ์•ฝ๊ด€์— ๋™์˜ํ•ฉ๋‹ˆ๋‹คโ€™ ๋˜๋Š” '์ž๋™ ๋กœ๊ทธ์ธโ€™๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ๋“ค์€ ๋ชจ๋‘ ์ฒดํฌ๋ฐ•์Šค๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„๋˜์ฃ .

์ด๋Ÿฌํ•œ ์ฒดํฌ๋ฐ•์Šค์˜ ์„ ํƒ ์—ฌ๋ถ€, ์ฆ‰ '์ƒํƒœโ€™๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ์€ ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ๊ทธ์— ๋งž๋Š” ๋กœ์ง์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ˜๋“œ์‹œ ์•Œ์•„์•ผ ํ•  ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(JavaScript)์™€ ์ œ์ด์ฟผ๋ฆฌ(jQuery)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฒดํฌ๋ฐ•์Šค์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•์„ ์‰ฝ๊ณ  ๋ช…ํ™•ํ•˜๊ฒŒ ์•Œ๋ ค๋“œ๋ฆด ๊ฑฐ์˜ˆ์š”. ์ด ๊ธ€์„ ๋๊นŒ์ง€ ์ฝ์œผ์‹œ๋ฉด, ์—ฌ๋Ÿฌ๋ถ„์€ ์–ด๋–ค ์ƒํ™ฉ์—์„œ๋“  ์ž์‹  ์žˆ๊ฒŒ ์ฒดํฌ๋ฐ•์Šค ์ƒํƒœ๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ฒŒ ๋  ๊ฒ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ HTML ์ฒดํฌ๋ฐ•์Šค

๋จผ์ €, ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ HTML ์ฒดํฌ๋ฐ•์Šค ์ฝ”๋“œ๋ถ€ํ„ฐ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ฒดํฌ๋ฐ•์Šค๋ฅผ ๋งŒ๋“ค๋ ค๋ฉด <input> ํƒœ๊ทธ์˜ type ์†์„ฑ์„ "checkbox"๋กœ ์„ค์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

<label>
  <input type="checkbox" id="terms"> ์ด์šฉ์•ฝ๊ด€์— ๋™์˜ํ•ฉ๋‹ˆ๋‹ค.
</label>

์—ฌ๊ธฐ์„œ <label> ํƒœ๊ทธ๋Š” ์ฒดํฌ๋ฐ•์Šค ์˜†์˜ ํ…์ŠคํŠธ๋ฅผ ํด๋ฆญํ•ด๋„ ์ฒดํฌ๋ฐ•์Šค๊ฐ€ ์„ ํƒ๋˜๋„๋ก ๋งŒ๋“ค์–ด ์‚ฌ์šฉ์ž ํŽธ์˜์„ฑ์„ ๋†’์—ฌ์ค๋‹ˆ๋‹ค. id ์†์„ฑ์€ ๋‚˜์ค‘์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋กœ ์ด ํŠน์ • ์ฒดํฌ๋ฐ•์Šค์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ๊ณ ์œ ํ•œ ์‹๋ณ„์ž์ž…๋‹ˆ๋‹ค.

JavaScript๋กœ ์ฒดํฌ๋ฐ•์Šค ์ƒํƒœ ํ™•์ธํ•˜๊ธฐ

์ด์ œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•ด ์ฒดํฌ๋ฐ•์Šค์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ด…์‹œ๋‹ค. ๊ฐ€์žฅ ํ•ต์‹ฌ์ ์ธ ์†์„ฑ์€ ๋ฐ”๋กœ checked์ž…๋‹ˆ๋‹ค.

checked ์†์„ฑ ์‚ฌ์šฉํ•˜๊ธฐ

checked ์†์„ฑ์€ ์ฒดํฌ๋ฐ•์Šค์˜ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ถˆ๋ฆฌ์–ธ(Boolean) ๊ฐ’์ž…๋‹ˆ๋‹ค. ์ฒดํฌ๋ฐ•์Šค๊ฐ€ ์„ ํƒ๋˜์–ด ์žˆ์œผ๋ฉด true๋ฅผ, ์„ ํƒ๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด false๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜๋Š” id๊ฐ€ 'my_checkboxโ€™์ธ ์ฒดํฌ๋ฐ•์Šค์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.

<label>
 <input type='checkbox' id='my_checkbox' onclick='is_checked()'>
  ์ฒดํฌํ•˜์„ธ์š”
</label>

<p id='result'></p>
function is_checked() {
  // 1. id๋ฅผ ์‚ฌ์šฉํ•ด ์ฒดํฌ๋ฐ•์Šค ์š”์†Œ๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.
  const checkbox = document.getElementById('my_checkbox');

  // 2. checked ์†์„ฑ์œผ๋กœ ์ƒํƒœ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  const isChecked = checkbox.checked; // true ๋˜๋Š” false

  // 3. ๊ฒฐ๊ณผ๋ฅผ ํ™”๋ฉด์— ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  document.getElementById('result').innerText = `์ฒดํฌ๋ฐ•์Šค ์ƒํƒœ: ${isChecked}`;
}

์ด ์ฝ”๋“œ์—์„œ onclick ์ด๋ฒคํŠธ๋Š” ์ฒดํฌ๋ฐ•์Šค๋ฅผ ํด๋ฆญํ•  ๋•Œ๋งˆ๋‹ค is_checked() ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜๋Š” ์ฒดํฌ๋ฐ•์Šค์˜ checked ์†์„ฑ ๊ฐ’์„ ๊ฐ€์ ธ์™€ <p> ํƒœ๊ทธ์— ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์ •๋ง ๊ฐ„๋‹จํ•˜์ฃ ? :)

์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ(Event Listener) ์‚ฌ์šฉํ•˜๊ธฐ

onclick ์†์„ฑ์„ HTML์— ์ง์ ‘ ๋„ฃ๋Š” ๋Œ€์‹ , ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ addEventListener๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ๊น”๋”ํ•˜๊ณ  ๊ถŒ์žฅ๋˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ํŠนํžˆ change ์ด๋ฒคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ฒดํฌ๋ฐ•์Šค์˜ ์ƒํƒœ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ๋งˆ๋‹ค ํŠน์ • ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

// id๊ฐ€ 'terms'์ธ ์ฒดํฌ๋ฐ•์Šค ์š”์†Œ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
const checkbox = document.getElementById("terms");

// 'change' ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์‹คํ–‰๋  ํ•จ์ˆ˜๋ฅผ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.
checkbox.addEventListener("change", function() {
  if (this.checked) {
    console.log("์ด์šฉ์•ฝ๊ด€์— ๋™์˜ํ•˜์…จ์Šต๋‹ˆ๋‹ค!");
  } else {
    console.log("๋™์˜๊ฐ€ ์ฒ ํšŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.");
  }
});

this.checked๋Š” ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ ์š”์†Œ(์—ฌ๊ธฐ์„œ๋Š” ์ฒดํฌ๋ฐ•์Šค)์˜ checked ์ƒํƒœ๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด HTML๊ณผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ์ฝ”๋“œ์˜ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ฒดํฌ๋ฐ•์Šค ์ƒํƒœ ํ™•์ธํ•˜๊ธฐ

๋•Œ๋กœ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ฒดํฌ๋ฐ•์Šค ์ค‘ ์–ด๋–ค ๊ฒƒ๋“ค์ด ์„ ํƒ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•  ๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž์˜ ๊ด€์‹ฌ์‚ฌ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ์„ ํƒํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒฝ์šฐ์ฃ . ์ด๋•Œ๋Š” document.querySelectorAll()์„ ์‚ฌ์šฉํ•ด ์—ฌ๋Ÿฌ ์š”์†Œ๋ฅผ ํ•œ ๋ฒˆ์— ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

<p>๊ด€์‹ฌ์‚ฌ๋ฅผ ์„ ํƒํ•˜์„ธ์š”:</p>
<label><input type="checkbox" class="interest" value="coding"> ์ฝ”๋”ฉ</label>
<label><input type="checkbox" class="interest" value="music"> ์Œ์•… ๊ฐ์ƒ</label>
<label><input type="checkbox" class="interest" value="exercise"> ์šด๋™</label>
<button onclick="showSelected()">์„ ํƒ ์™„๋ฃŒ</button>
function showSelected() {
  // class๊ฐ€ 'interest'์ธ ๋ชจ๋“  ์ฒดํฌ๋ฐ•์Šค๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
  const checkboxes = document.querySelectorAll(".interest");
  const selectedInterests = [];

  // for...of ๋ฃจํ”„๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ ์ฒดํฌ๋ฐ•์Šค๋ฅผ ์ˆœํšŒํ•ฉ๋‹ˆ๋‹ค.
  for (const checkbox of checkboxes) {
    if (checkbox.checked) {
      selectedInterests.push(checkbox.value);
    }
  }

  alert(`์„ ํƒ๋œ ๊ด€์‹ฌ์‚ฌ: ${selectedInterests.join(', ')}`);
}

querySelectorAll(".interest")๋Š” interest ํด๋ž˜์Šค๋ฅผ ๊ฐ€์ง„ ๋ชจ๋“  ์š”์†Œ๋ฅผ NodeList ํ˜•ํƒœ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ for...of ๋ฃจํ”„๋ฅผ ๋Œ๋ฉด์„œ ๊ฐ ์ฒดํฌ๋ฐ•์Šค์˜ checked ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๊ณ , ์„ ํƒ๋œ ๊ฒƒ๋“ค์˜ value๋งŒ selectedInterests ๋ฐฐ์—ด์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

jQuery๋กœ ์ฒดํฌ๋ฐ•์Šค ์ƒํƒœ ํ™•์ธํ•˜๊ธฐ

jQuery๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด DOM ์กฐ์ž‘ ์ฝ”๋“œ๋ฅผ ๋” ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒดํฌ๋ฐ•์Šค ์ƒํƒœ ํ™•์ธ๋„ ์˜ˆ์™ธ๋Š” ์•„๋‹™๋‹ˆ๋‹ค.

.prop() ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉํ•˜๊ธฐ

jQuery์—์„œ๋Š” ์š”์†Œ์˜ ์†์„ฑ(property) ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ์„ค์ •ํ•  ๋•Œ .prop() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. checked ๊ฐ™์€ ๋ถˆ๋ฆฌ์–ธ ์†์„ฑ์„ ๋‹ค๋ฃฐ ๋•Œ ํŠนํžˆ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

// id๊ฐ€ 'checkboxId'์ธ ์ฒดํฌ๋ฐ•์Šค๊ฐ€ ์ฒดํฌ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธ
if ($("#checkboxId").prop("checked")) {
  console.log("์ฒดํฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค!");
} else {
  console.log("์ฒดํฌ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.");
}

// ์ฒดํฌ๋ฐ•์Šค๋ฅผ ๊ฐ•์ œ๋กœ ์ฒดํฌ ์ƒํƒœ๋กœ ๋งŒ๋“ค๊ธฐ
$('#ckBox').prop('checked', true);

// ์ฒดํฌ๋ฐ•์Šค๋ฅผ ๊ฐ•์ œ๋กœ ์ฒดํฌ ํ•ด์ œํ•˜๊ธฐ
$('#ckBox').prop('checked', false);

.is() ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉํ•˜๊ธฐ

.is() ๋ฉ”์†Œ๋“œ๋Š” ์„ ํƒ๋œ ์š”์†Œ๊ฐ€ ํŠน์ • ์กฐ๊ฑด์— ๋ถ€ํ•ฉํ•˜๋Š”์ง€ ํ™•์ธํ•˜์—ฌ true ๋˜๋Š” false๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. :checked ์„ ํƒ์ž์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋ฉด ์ฒดํฌ๋ฐ•์Šค์˜ ์ƒํƒœ๋ฅผ ๋งค์šฐ ์ง๊ด€์ ์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

// id๊ฐ€ 'ckBox'์ธ ์ฒดํฌ๋ฐ•์Šค๊ฐ€ ์ฒดํฌ๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธ
if ($('#ckBox').is(':checked')) {
  console.log("์ฒดํฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.");
} else {
  console.log("์ฒดํฌ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.");
}

๊ฐœ์ธ์ ์œผ๋กœ๋Š” ๊ฐ€๋…์„ฑ ์ธก๋ฉด์—์„œ .is(':checked')๋ฅผ ์„ ํ˜ธํ•˜๋Š” ํŽธ์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ๊ฐ€ ๋งˆ์น˜ ์ž์—ฐ์–ด์ฒ˜๋Ÿผ ์ฝํžˆ๊ธฐ ๋•Œ๋ฌธ์ด์ฃ .

์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ฒดํฌ๋ฐ•์Šค ์ƒํƒœ ํ™•์ธํ•˜๊ธฐ (jQuery)

jQuery์˜ .each() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ฒดํฌ๋ฐ•์Šค๋ฅผ ์‰ฝ๊ฒŒ ์ˆœํšŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

$(".checkboxClass").each(function() {
  if ($(this).is(":checked")) {
    console.log($(this).attr('id') + "์€(๋Š”) ์„ ํƒ๋์–ด์š”!");
  } else {
    console.log($(this).attr('id') + "์€(๋Š”) ์„ ํƒ ์•ˆ ๋์–ด์š”.");
  }
});

$(this)๋Š” .each() ๋ฃจํ”„ ๋‚ด์—์„œ ํ˜„์žฌ ์ˆœํšŒ ์ค‘์ธ ์š”์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.

์ฃผ์š” ์‚ฌ์šฉ ์‚ฌ๋ก€

์ฒดํฌ๋ฐ•์Šค ์ƒํƒœ ํ™•์ธ์€ ๋‹ค์–‘ํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • ํผ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ: ์‚ฌ์šฉ์ž๊ฐ€ โ€˜์ด์šฉ์•ฝ๊ด€ ๋™์˜โ€™ ๊ฐ™์€ ํ•„์ˆ˜ ํ•ญ๋ชฉ์„ ์ฒดํฌํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ์ฒดํฌํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ํผ ์ œ์ถœ์„ ๋ง‰์Šต๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ํ•„ํ„ฐ๋ง ๋ฐ ์ •๋ ฌ: ์‡ผํ•‘๋ชฐ ์‚ฌ์ดํŠธ์—์„œ โ€˜๋ฌด๋ฃŒ ๋ฐฐ์†กโ€™, โ€˜ํŠน๊ฐ€ ์ƒํ’ˆโ€™ ๊ฐ™์€ ํ•„ํ„ฐ๋ฅผ ์ฒดํฌ๋ฐ•์Šค๋กœ ์ œ๊ณตํ•˜๊ณ , ์„ ํƒ๋œ ์กฐ๊ฑด์— ๋งž๋Š” ์ƒํ’ˆ๋งŒ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.
  • ๊ธฐ๋Šฅ ํ™œ์„ฑํ™”/๋น„ํ™œ์„ฑํ™”: '๋‹คํฌ ๋ชจ๋“œ ์‚ฌ์šฉโ€™์ด๋‚˜ โ€˜์•Œ๋ฆผ ๋ฐ›๊ธฐโ€™ ๊ฐ™์€ ์„ค์ •์„ ์ฒดํฌ๋ฐ•์Šค๋กœ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.
  • โ€˜์ „์ฒด ์„ ํƒโ€™ ๊ธฐ๋Šฅ: ํ‘œ์˜ ๋ชจ๋“  ํ•ญ๋ชฉ์„ ํ•œ ๋ฒˆ์— ์„ ํƒํ•˜๊ฑฐ๋‚˜ ํ•ด์ œํ•˜๋Š” โ€˜์ „์ฒด ์„ ํƒโ€™ ์ฒดํฌ๋ฐ•์Šค๋ฅผ ๊ตฌํ˜„ํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ •๋ฆฌํ•˜๋ฉฐ

์ง€๊ธˆ๊นŒ์ง€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ jQuery๋ฅผ ์‚ฌ์šฉํ•ด ์ฒดํฌ๋ฐ•์Šค์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด์•˜์Šต๋‹ˆ๋‹ค. ํ•ต์‹ฌ์€ checked ์†์„ฑ์„ ์ดํ•ดํ•˜๊ณ , ์ด๋ฅผ if ์กฐ๊ฑด๋ฌธ๊ณผ ํ•จ๊ป˜ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ์ˆœ์ˆ˜ JavaScript: element.checked ์†์„ฑ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • jQuery: .prop('checked') ๋˜๋Š” .is(':checked')๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์—ฌ๋Ÿฌ ํ•ญ๋ชฉ: querySelectorAll()์ด๋‚˜ .each()๋ฅผ ์‚ฌ์šฉํ•ด ๋ฐ˜๋ณต ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  • ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ: change ์ด๋ฒคํŠธ๋ฅผ ์‚ฌ์šฉํ•ด ์ƒํƒœ ๋ณ€๊ฒฝ์„ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์ฒดํฌ๋ฐ•์Šค๋Š” ์ž‘์ง€๋งŒ ๊ฐ•๋ ฅํ•œ UI ์š”์†Œ์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜ ๋ฐฐ์šด ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ์‚ฌ์šฉ์ž์™€ ์›ํ™œํ•˜๊ฒŒ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ๋™์ ์ธ ์›น ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์–ด๋ณด์„ธ์š”. ์—ฌ๋Ÿฌ๋ถ„์˜ ํ”„๋กœ์ ํŠธ์— ๋ฐ”๋กœ ์ ์šฉํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š” ์‹ค์šฉ์ ์ธ ํŒ์ด ๋˜์—ˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค!

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฒดํฌ๋ฐ•์Šค ์ฒดํฌ ์—ฌ๋ถ€ ํ™•์ธ ์™„๋ฒฝ ๊ฐ€์ด๋“œ | devdong