🍁Check Box
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>체크 박스</h1>
<form name="form1">
<input type="checkbox" name="cb1">
<input type="button" value="버튼" name="btn1">
</form>
<script>
document.form1.btn1.onclick = m1;
function m1() {
document.form1.cb1.checked = !document.form1.cb1.checked;
}
</script>
</body>
</html>
버튼에 이벤트를 걸어서 체크 박스를 클릭했을 때 외에도 버튼을 클릭했을 때 체크 박스에 체크가 되게 할 수 있다.
🍁장바구니
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>장바구니</h1>
<table border width="500">
<tr>
<th><input type="checkbox" name="cball"></th>
<th>상품명</th>
<th>수량</th>
<th>가격</th>
</tr>
<tr>
<td><input type="checkbox" name="cbitem"></td>
<td>노트북</td>
<td>1</td>
<td>2,000,000원</td>
</tr>
<tr>
<td><input type="checkbox" name="cbitem"></td>
<td>노트북</td>
<td>1</td>
<td>2,000,000원</td>
</tr>
<tr>
<td><input type="checkbox" name="cbitem"></td>
<td>노트북</td>
<td>1</td>
<td>2,000,000원</td>
</tr>
<tr>
<td><input type="checkbox" name="cbitem"></td>
<td>노트북</td>
<td>1</td>
<td>2,000,000원</td>
</tr>
<tr>
<td><input type="checkbox" name="cbitem"></td>
<td>노트북</td>
<td>1</td>
<td>2,000,000원</td>
</tr>
<tr>
<td><input type="checkbox" name="cbitem"></td>
<td>노트북</td>
<td>1</td>
<td>2,000,000원</td>
</tr>
<tr>
<td><input type="checkbox" name="cbitem"></td>
<td>노트북</td>
<td>1</td>
<td>2,000,000원</td>
</tr>
<tr>
<td><input type="checkbox" name="cbitem"></td>
<td>노트북</td>
<td>1</td>
<td>2,000,000원</td>
</tr>
<tr>
<td><input type="checkbox" name="cbitem"></td>
<td>노트북</td>
<td>1</td>
<td>2,000,000원</td>
</tr>
<tr>
<td><input type="checkbox" name="cbitem"></td>
<td>노트북</td>
<td>1</td>
<td>2,000,000원</td>
</tr>
</table>
<script>
document.all.cball.onchange = m2;
function m2() {
// if (event.target.checked) {
// for (var i=0; i<document.all.cbitem.length; i++) {
// document.all.cbitem[i].checked = true;
// }
// } else {
// for (var i=0; i<document.all.cbitem.length; i++) {
// document.all.cbitem[i].checked = false;
// }
// }
for (var i=0; i<document.all.cbitem.length; i++) {
document.all.cbitem[i].checked = event.target.checked;
}
}
</script>
</body>
</html>
제일 위의 체크박스를 클릭하면 전체 선택이 되고, 상품별로 체크를 할 수 있게 한다.
체크 박스를 눌렀을 때 클릭이라는 행동을 하므로 onclick 이벤트를 걸어도 되고, 입력 컨트롤이 자기가 가진 값을 변할 때를 인식하는 onchange 이벤트를 걸어도 된다.
document.all.cball.onchange = m2;
function m2() {
alert(event.target.checked);
}
지금은 onchange로 이벤트를 걸었다. 체크할 때와 체크를 해제할 때의 업무가 다르기 때문에 이제 이를 구분해 주어야 한다.
checked를 검증하며 체크가 되면 true, 체크를 해제하면 false를 받는다.
일괄 선택
document.all.cball.onchange = m2;
function m2() {
if (event.target.checked) {
for (var i=0; i<document.all.cbitem.length; i++) {
document.all.cbitem[i].checked = true;
}
} else {
for (var i=0; i<document.all.cbitem.length; i++) {
document.all.cbitem[i].checked = false;
}
}
}
document.all.cball.onchange = m2;
function m2() {
for (var i=0; i<document.all.cbitem.length; i++) {
document.all.cbitem[i].checked = event.target.checked;
}
}
상단의 체크 박스를 체크하면 모든 상품이 일괄 선택된다.
🍁Radio Box
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<h1>라디오 버튼</h1>
<label><input type="radio" name="rb" value="white" checked>흰색</label>
<label><input type="radio" name="rb" value="black">검은색</label>
<label><input type="radio" name="rb" value="tomato">빨간색</label>
<label><input type="radio" name="rb" value="gold">노란색</label>
<label><input type="radio" name="rb" value="cornflowerblue">파란색</label>
<script>
var rb = document.all.rb;
for (var i=0; i<rb.length; i++) {
rb[i].onchange = m1;
}
function m1() {
document.body.bgColor = event.target.value;
if (event.target.value == 'black') {
document.body.text = 'white';
} else {
document.body.text = 'black';
}
}
</script>
</body>
</html>
검은 화면일 때 글자 색상을 흰색으로 바꿔서 글자가 보이게 했다.