본문 바로가기

Java Script/work

체육관 이용 요금. form으로 묶기

방법1. 값을 배열로 받아 체크상태 확인 후 총 합 출력

 

<body>
<h2>체육관 이용 요금</h2>

기본사용료(2면, 4시간) 48,000원<br><br>

<input type="checkbox" name="option" id="ch1" value="20000" onclick="sum()"> 야간조명 (20,000원) <br>
<input type="checkbox" name="option" id="ch2" value="4000" onclick="sum()"> 배구 네트x2면 (4,000원)<br>
<input type="checkbox" name="option" id="ch3" value="5000" onclick="sum()"> 배구x10개 (5,000원) <br>

합계금액 <input type="text" id="result" value="40800">원정 <br>

<script type="text/javascript">

 function sum() {
	let value = document.getElementsByName("option");
	let sum = 0;
	let a=0;
	let b=0;
	let c=0;
	
	if (value[0].checked) {
		a = parseInt(value[0].value);
	} 
	if (value[1].checked) {
		b = value[1].value*1;
	} 
	if (value[2].checked) {
		c = value[2].value*1;
	} 
	
	sum = a+b+c;
	document.getElementById("result").value = sum;
}

</script>
</body>

 

 

 


 

 

방법2. form을 name으로 묶어 배열로 받고, 체크값을 true/false로 받아 연산 후 총합에 더함 

 

+체육관 이용요금을 Tag id없이 <script>에서 수정하기

->0번지(첫번째) body 태그의 안의 0번지(첫번째) h1태그를 html로 가져옴

 

<body>
<h1>체육관 이용 요금</h1>
기본사용료(2면, 4시간) 48,000원<br><br>

<form name="frm">
	<input type="checkbox" onclick="sum(0)" id="ch1" value="20000">야간조명(20,000원)
	<br>
	<input type="checkbox" onclick="sum(1)" id="ch2" value="4000">배구 네트 x 2장(4,000원)
	<br>
	<input type="checkbox" onclick="sum(2)" id="ch3" value="5000">배구공 x 10(5,000원)
	<br>
	<br>
	합계금액:<input type="text" id="t1" value="48000">원정
</form>
<h1>감사합니다</h1>

<script type="text/javascript">
let total = parseInt( document.getElementById('t1').value ); // 40800

let arr = new Array(3);
for(i = 0;i < arr.length; i++){
	arr[i] = parseInt( document.getElementById('ch' + (i + 1)).value );
//	alert(arr[i]);
}
//arr[1] = parseInt( document.getElementById('ch2').value );
//arr[2] = parseInt( document.getElementById('ch3').value );

function sum( num ) {
//	alert( document.frm.elements[0].value );
//	alert( document.frm.elements[0].checked );

	if( document.frm.elements[num].checked == true ){
		total = total + arr[num];
	}else{
		total = total - arr[num];
	}
	
	document.frm.elements[3].value = total;
	
	let obj = document.getElementsByTagName("body")[0];
	alert( obj.getElementsByTagName("h1")[0].innerHTML );
	
	obj.getElementsByTagName("h1")[1].innerHTML = '안녕히 가십시오';
}

</script>
</body>

 

 

 

방법3. 파라미터에 따른 체크박스 id를 각각 받고 그에따른 값을 받아와 연산을 함.

<body>
<h1>체육관 이용 요금</h1>
기본 사용료(4시간)40,800원
<br><br>

<input type="checkbox" onclick="sum(0)" id="ch1" value="20000">야간조명(20,000원)
<br>
<input type="checkbox" onclick="sum(1)" id="ch2" value="4000">배구 네트 x 2장(4,000원)
<br>
<input type="checkbox" onclick="sum(2)" id="ch3" value="5000">배구공 x 10(5,000원)
<br>
<br>
합계금액:<input type="text" id="t1" value="40800">원정
 
<script type="text/javascript">

let total = parseInt( document.getElementById('t1').value ); // 40800


function sum( num ) {
//	alert('호출');
	
//	let val = document.getElementById("ch1").value; 
//	alert(val);
	
//	let state = document.getElementById('ch1').checked;	// true/false
//	alert(state);
	
	
	let checkboxId;
	if(num == 0){
		checkboxId = 'ch1';
	}else if(num == 1){
		checkboxId = 'ch2';
	}else if(num == 2){
		checkboxId = 'ch3';
	}
	
	// alert(checkboxId);
	let ch1 = document.getElementById(checkboxId).checked;	//true or false
	let value = parseInt( document.getElementById(checkboxId).value );
	
	if(ch1 == true){
		total = total + value;
	}else{
		total = total - value;
	}
	document.getElementById('t1').value = total;	
}

</script>

</body>