<!-- 버튼에 onclick이벤트 추가 -->
<button type="button" onclick="fnSum()">계산</button>
<script type="text/javascript">
function fnSum() {
var f = shopPrice;
var n1 = Number(f.n1.value);
var n2 = Number(f.n2.value);
f.nSum.value = n1+n2;
}
</script>
결과
실습2. 계산이라는 버튼을 아래의 체크박스의 체크된 대상의 가격을 합산하여 sSum에 결괏값을 출력하여라.
<form name="sPrice">
<input type="checkbox" name="com" value="5000"> 컴퓨터 부품 : 5000
<input type="checkbox" name="com" value="4000"> 컴퓨터 부품 : 4000
<input type="checkbox" name="com" value="3000"> 컴퓨터 부품 : 3000
<input type="checkbox" name="com" value="2000"> 컴퓨터 부품 : 2000
<input type="checkbox" name="com" value="1000"> 컴퓨터 부품 : 1000<br>
<input type="number" name="sSum" readonly="readonly">
<button type="button">계산</button>
</form>
풀이
<!-- 버튼에 onclick 이벤트 추가 -->
<button type="button" onclick="sPriceSum()">계산</button>
<script type="text/javascript">
function sPriceSum() {
var f = sPrice;
var sum = 0;
for(var i=0; i<f.com.length; i++){
if(f.com[i].checked){
sum += Number(f.com[i].value);
}
}
f.sSum.value = sum;
}
</script>
결과
선생님 풀이
function sSumFn(){
var comArray = sPrice.com;
var sum = 0;
for(var i=0; i<comArray.length; i++){
if(comArray[i].checked){
sum += Number(comarray[i].value;
}
}
sPrice.sSum.value = sum;
}
실습3. 옵션 및 수량이 변경 될 경우 총가격,부가세,총 결제 금액을 계산하여 해당 영역에 출력하도록 하여라.
<form name="goodsView">
<input type="text" name="goodsPrice" value="10000" readonly>
<select name="goodsOption">
<option value="0"> :: 옵션 없음 :: </option>
<option value="1000"> 추가 a 타입 : 1000 </option>
<option value="2000"> 추가 b 타입 : 2000 </option>
<option value="3000"> 추가 c 타입 : 3000 </option>
</select>
<select name="goodsNum">
<option value="1"> 1개 </option>
<option value="5"> 5개 </option>
<option value="10"> 10개 </option>
<option value="15"> 15개 </option>
</select><br>
총가격 : <input type="text" name="totalPrice" value="0" readonly>
부가세 : <input type="text" name="totalVat" value="0" readonly> <!-- 세금 10% -->
총 결제 금액 : <input type="text" name="paymentPrice" value="0" readonly>
</form>
풀이
//select태그들에 onchange 이벤트 추가
function goodsFn() {
var f=goodsView;
var goodsOption = Number(f.goodsOption.value);
var goodsNum = Number(f.goodsNum.value);
/*
총가격 : (10000 + 옵션 ) * 수량
부가세 : 총가격 * 0.1
총 결제 금액 : 총가격 + 부가세
*/
var totalPrice = (10000+goodsOption)*goodsNum;
f.totalPrice.value = totalPrice;
f.totalVat.value = totalPrice * 0.1;
f.paymentPrice.value = totalPrice + (totalPrice*0.1);
}
결과
선생님풀이
function goodsPriceSum(){
var price = Number(goodsView.goodsPrice.value);
var option = Number(goodsView.goodsOpion.value);
var num = Number(goodsView.goodsNum.value);
var total =(price + option) * num;
var vat = total * 0.1;
goodsView.totalPrice.value = total;
goodsView.totalVat.value = vat;
goodsView.paymentPrice.value = total + vat;
}
정규표현식으로 숫자만 입력받기
<input type="text" onkeyup="onlyNumber(this)" onblur="onlyNumber(this)">
<script type="text/javascript">
function onlyNumber(target) {
var regex = /[^0-9]/g; // ^:반대 , g:전체 -> 숫자(0~9)가 아닌(^) 모든(g) 값들
var result = target.value.replace(regex, ""); //숫자가 아닌 모든 값들을 공백으로 치환
console.log(target.value, 'input값');
console.log(result, '정규표현식에 관련된 값을 공백으로 치환');
target.value = result; //치환된 값을 재대입
}
</script>