FRONT/js

CheckBox

hyunjun's developing ๐Ÿฃ 2024. 8. 28. 17:40

์ฒดํฌ ๋ฐ•์Šค ํƒœ๊ทธ์™€ ์†์„ฑ์„ ์—ฐ์Šตํ•  UI์ด๋‹ค.

 

<body>

<div id = "red">red</div>

<div id = "yellow">yellow</div>

<div id = "blue">blue</div>

<div id = "black">black</div>

<div id = "base">

<form>

<input type = "checkbox" name = "all" onclick = "allSel(this)"/>์ „์ฒด์„ ํƒ<br/> <!-- this๋Š” ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” ์ธํ’‹ ๊ฐ์ฒด๋ฅผ ๋งํ•จ -->

<input type = "checkbox" name = "chk" value = "red" />๋ ˆ๋“œ์„ ํƒ<br/>

<input type = "checkbox" name = "chk" value = "yellow" />์˜๋กœ์šฐ์„ ํƒ<br/>

<input type = "checkbox" name = "chk" value = "blue" />๋ธ”๋ฃจ์„ ํƒ<br/>

<input type = "checkbox" name = "chk" value = "black" />๋ธ”๋ž™์„ ํƒ<br/>

<button type = "button" onclick = "sel()">์„ ํƒ</button>

<button type = "button" onclick = "clearDiv()">์ดˆ๊ธฐํ™”</button> </form>

</div>

</body>

 

์ด๋ ‡๊ฒŒ ๋งŒ๋“ค๋ฉด ๋˜๊ณ  CSS๋กœ ์ž‘์—…ํ•ด์ค€๋‹ค. CSS๋Š” ์ƒ๋žตํ•˜๊ฒ ๋‹ค. ์ „์ฒด์„ ํƒ ๋ฒ„ํŠผ์—์„œ allSel(this)๋ฅผ ํด๋ฆญํ•  ๋•Œ ํ˜ธ์ถœ์„ ํ•˜๋Š”๋ฐ ์ด this๋Š” input์š”์†Œ๋ฅผ ๋งํ•œ๋‹ค. ์ฆ‰ input์š”์†Œ์˜ ๋‚ด์šฉ์„ ์ „๋‹ฌํ•˜๊ฒ ๋‹ค๋Š” ๋œป์ด๋‹ค. 

 

function allSel(chkAllObj){

console.log(chkAllObj.checked); // ์ „์ฒด์„ ํƒ ์ฒดํฌ๋ฐ•์Šค์˜ ์ฒดํฌ์—ฌ๋ถ€ ํ™•์ธ ๊ฐ€๋Šฅ

 

var chks = document.getElementsByName("chk"); //[ehk,ehk,ehk,ekh]

 

 

chks.forEach((chk) =>{

chk.checked = chkAllObj.checked;

}

 

);

}

 

 

์ด๊ฐ€ allSel ํ•จ์ˆ˜์ด๋‹ค. ํ˜ธ์ถœ์„ ํ•œ input์š”์†Œ๋ฅผ ์ „๋‹ฌ ๋ฐ›์„ ๋–„๋งˆ๋‹ค ์ฝ˜์†”์— ์ฒดํฌ๊ฐ€ ํ’€๋ ธ๋Š”์ง€ ๋˜์—ˆ๋Š”์ง€ true/false๋กœ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  DOM ํƒ์ƒ‰์œผ๋กœ Name์ด chk์ธ๊ฒƒ์„ ์ฐพ์•„์„œ chks๋ผ๋Š” ๋ฐฐ์—ด์— ๋„ฃ์–ด์ฃผ๊ณ  ๋ฐฐ์—ด์„ for๋ฌธ์„ ํ†ตํ•ด์„œ ์ „์ฒด์„ ํƒ์˜ true/false์—ฌ๋ถ€๋ฅผ ๊ฐœ๊ฐœ์— ๋„ฃ์–ด์ค€๋‹ค.

 

function sel(){

//์ฒดํฌ๋ฐ•์Šค ์—ฌ๋Ÿฌ๊ฐœ ํƒ์ƒ‰

var chks = document.getElementsByName("chk");

chks.forEach((chk) =>

{

if(chk.checked){

document.getElementById(chk.value).style.backgroundColor=chk.value;

}else{

document.getElementById(chk.value).style.backgroundColor="white"

}

})

}

 

 

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

 if ๋ฌธ๋ถ€ํ„ฐ ์„ค๋ช…์„ ํ•˜์ž๋ฉด chk.value ๊ฐ’์ด id์™€ ์ผ์น˜ํ•˜๋Š” ๋ถ€๋ถ„์„ ์ฐพ๋Š”๋‹ค. ๊ทธ ๋ถ€๋ถ„์„ ์ฐพ์•„์„œ ํ•ด๋‹น ๊ทธ ๊ตฌ์—ญ์„ value์— ๋ช…์‹œ๋œ ๊ฐ’์œผ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.