์๋ ํ์ธ์ ๊ณฐ์ด์์!
์ค๋ ์ ๊น ์ฌ์ฌํด์ ๋ง๋ค์ด๋ณธ ํผํ์จ๋ผ์ธ ์์๋ฃ ๊ณ์ฐ๊ธฐ ์ฝ๋ ๋ฆฌ๋ทฐ ๋ฐ ์ค๋ช ์ ํด๋ณผ๊น ํฉ๋๋ค.
์ด๋ฐ ๊ฒ ์ ๋ธ๋ก๊ทธ์์๋ ์ฒ์์ด๋ผ ์ ์ค๋ช ํ ์ ์์์ง ๋ชจ๋ฅด๊ฒ ๋ค์ ใ ใ
์๋์ ์์ ํฌ์คํ ํ์๋ฉด ๋ณด์ค ์ ์์ต๋๋ค.
๊ณ ์ํ ์ด์
์ด์ ๋ ๋ฑํ ์์ด์ ๊ทธ๋ฅ ํ๋ฒ ํด๋ณผ๊น ํด์ ๋์ ์ด๋ฉด์ ๋ง๋ ๊ฒ๋๋ค.
์ ์ฒด ์์ค
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>ํผํ ์์๋ฃ ๊ณ์ฐ๊ธฐ</title>
</head>
<script src="/js/jquery-3.4.1.min.js"></script>
<script src="/js/jquery_ui/jquery-ui.min.js"></script>
<script>
//input์ ์ซ์๋ง ์
๋ ฅ๋ฐ๊ธฐ
function isNum()
{
if ((event.keyCode >= 45 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105) || event.keyCode == 8|| event.keyCode==13 || event.keyCode==9) return true;
else return false;
}
//์ฒ ๋จ์ ์ฝค๋ง ์ฐ์ด ์ถ๋ ฅํ๊ธฐ
function number_format(val)
{
var val_in = val.toString().split(".");
val_in[0] = val_in[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
val_in = val_in.join(".");
return val_in;
}
//๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ
function get_data(double)
{
//์
๋ ฅ ๊ฐ๊ฒฉ
var put_bp = double.toString();
//intํ์ผ๋ก 1000๊ณผ ๋น๊ต.
if(parseInt(put_bp) < 1000 && put_bp.length != 0)
{
alert("1,000(์ฒ)BP์ด์์ ๊ฐ์ ์
๋ ฅํด ์ฃผ์ธ์.");
$("#bp_01").val(""); //์ง์ฐ๊ธฐ
$("#bp_01").focus(); //ํฌ์ปค์ค ํด์ฃผ๊ธฐ
return false; //์คํ์ค์ง
}
//๊ธฐ๋ณธ์์๋ฃ 40% ์ ์ธํ ๊ธ์ก
var minus_bp = (put_bp * 40 / 100);
//์ต์ข
๋ฐ๋๊ธ์ก ๋ฃ์ด์ฃผ๊ธฐ
var real_bp = (put_bp - minus_bp);
//์ฟ ํฐ ์ค์ ๊ฐ์ด ์๋์ง?
if($("#use_coupon").val())
{
//์ ํํ ์ฟ ํฐ%์ ๋ฐ๋ผ ๊ฒ์ฐ
var su_per = (minus_bp * $("#use_coupon").val() / 100);
//์ต์ข
๊ธ์ก์ ํ ์ธ๋๋๊ธ์ก ํฉ์น๊ธฐ
real_bp = real_bp + su_per;
//์ฟ ํฐ์ผ๋ก ํ ์ธ๋ฐ๋๊ธ์ก ์ฝค๋ง์ฐ๊ธฐ ์์
var coupon_in = number_format(su_per);
//ํ ์ธ๋ฐ๋๊ธ์ก ๋ฃ์ด์ฃผ๊ธฐ
$("#coupon_bp").text(coupon_in);
//ํผ์ผํธ์จ์ ๋ฐ๋ฅธ ํ๊ธฐ
$("#per").text($("#use_coupon").val());
}
// topClass or primium pc ๋์คํ๋๋ผ๋ Y์ผ๋
if($("#top_class:checked").val() == "Y" && $("#primium_pc:checked").val() == "Y")
{
// ํํด๋์ค๋ ์์๋ฃ ๋๋น 20% ํ ์ธ
var top_class = (minus_bp * 20 / 100);
// ํ๋ฆฌ๋ฏธ์ pc๋ฐฉ์ ์์๋ฃ ๋๋น 30% ํ ์ธ
var pc_class = (minus_bp * 30 / 100);
//๋ ๋ค ์ด๊ธฐ๋๋ฌธ์ ๋์ด ํ ์ธํ ๊ธ์ก์ ํฉ์ณ์ค๋ค.
var top_pc = parseInt(top_class)+parseInt(pc_class);
//๊ฐ๋ณ ํ ์ธ๊ธ์ก์ ๋ฐ๋ฅธ ์ฝค๋ง์ฐ๊ธฐ.
var top_in = number_format(top_pc);
//์ต์ข
๋ฐ์๊ธ์ก + ํํด๋์ค ํ ์ธ๊ธ์ก ํฉ์ฐ
real_bp = real_bp + top_pc;
$("#class_bp").text(top_in);
}
else
{
//ํํด๋์ค๋ง ์ผ๋
if($("#top_class:checked").val() == "Y")
{
//ํํด๋์ค ํผ์ผํธ์จ ๊ณ์ฐ
var top_class = (minus_bp * 20 / 100);
//์ฝค๋ง ์ฐ๊ธฐ
var top_in = number_format(top_class);
//๋ฐ์๊ธ์ก + ํ ์ธ๋ฐ์๊ธ์ก ํฉ์ฐ
real_bp = real_bp + top_class;
//๊ฐ๋ณํ ์ธ๊ธ์ก์ ํ๊ธฐ
$("#class_bp").text(top_in);
}
//ํ๋ฆฌ๋ฏธ์ pc๋ฐฉ์ผ๋
if($("#primium_pc:checked").val() == "Y")
{
//ํผ์จ๋ฐฉ ํผ์ผํธ์จ ๊ณ์ฐ
var pc_class = (minus_bp * 30 / 100);
//์ฝค๋ง ์ฐ๊ธฐ
var pc_in = number_format(pc_class);
//๋ฐ์๊ธ์ก + ํ ์ธ๋ฐ์๊ธ์ก ํฉ์ฐ
real_bp = real_bp + pc_class;
//๊ฐ๋ณํ ์ธ๊ธ์ก์ ํ๊ธฐ
$("#class_bp").text(pc_in);
}
//๋ ๋ค N์ผ๋
if($("#top_class:checked").val() == "N" && $("#primium_pc:checked").val() == "N")
{
//0์ผ๋ก ํ๊ธฐ
$("#class_bp").text(0);
}
}
//์ฝค๋ง ์์
var put_in = number_format(put_bp); //์
๋ ฅํ ๊ฐ.
var minus_in = number_format(minus_bp); //์์๋ฃ ๊ฐ.
var total_in = number_format(real_bp); //์ต์ข
๋ฐ์๊ธ์ก ๊ฐ.
//๊ตฌํ ๊ฐ ๋ฃ๊ธฐ
$("#bp_01").val(put_in);
$("#default_bp").text(minus_in);
$("#total_bp").text(total_in);
}
//์ฝค๋ง ์ ๊ฑฐํ๊ธฐ
function comma_less(amount, id)
{
var set_bp = $("#"+id).val(amount.replace(/,/g, ''));
return set_bp;
}
//๊ณ์ฐ๋ BP๊ตฌํ๊ธฐ
function get_bp()
{
//๊ธฐ๋ณธ ์์๋ฃ ๊ฐ
var default_bp = $("#bp_01").val().replace(/,/g, '');
//๊ธฐ๋ณธ์์๋ฃ 40% ์ ์ธํ ๊ธ์ก
var minus_bp = (default_bp * 40 / 100);
//์ต์ข
๋ฐ๋๊ธ์ก ๋ฃ์ด์ฃผ๊ธฐ
var real_bp = (default_bp - minus_bp);
var bp = $("#default_bp").text().replace(/,/g, '');
var su_per = (bp * $("#use_coupon").val() / 100);
var re_total = parseInt(real_bp) + parseInt(su_per);
// topClass or primium pc ๋์คํ๋๋ผ๋ Y์ผ๋
if($("#top_class:checked").val() == "Y" && $("#primium_pc:checked").val() == "Y")
{
// ํํด๋์ค๋ ์์๋ฃ ๋๋น 20% ํ ์ธ
var top_class = (minus_bp * 20 / 100);
// ํ๋ฆฌ๋ฏธ์ pc๋ฐฉ์ ์์๋ฃ ๋๋น 30% ํ ์ธ
var pc_class = (minus_bp * 30 / 100);
//๋ ๋ค ์ด๊ธฐ๋๋ฌธ์ ๋์ด ํ ์ธํ ๊ธ์ก์ ํฉ์ณ์ค๋ค.
var top_pc = parseInt(top_class)+parseInt(pc_class);
//๊ฐ๋ณ ํ ์ธ๊ธ์ก์ ๋ฐ๋ฅธ ์ฝค๋ง์ฐ๊ธฐ.
var top_in = number_format(top_pc);
//์ต์ข
๋ฐ์๊ธ์ก + ํํด๋์ค ํ ์ธ๊ธ์ก ํฉ์ฐ
re_total = re_total + top_pc;
$("#class_bp").text(top_in);
}
else
{
//ํํด๋์ค๋ง ์ผ๋
if($("#top_class:checked").val() == "Y")
{
//ํํด๋์ค ํผ์ผํธ์จ ๊ณ์ฐ
var top_class = (minus_bp * 20 / 100);
//์ฝค๋ง ์ฐ๊ธฐ
var top_in = number_format(top_class);
//๋ฐ์๊ธ์ก + ํ ์ธ๋ฐ์๊ธ์ก ํฉ์ฐ
re_total = re_total + top_class;
//๊ฐ๋ณํ ์ธ๊ธ์ก์ ํ๊ธฐ
$("#class_bp").text(top_in);
}
//ํ๋ฆฌ๋ฏธ์ pc๋ฐฉ์ผ๋
if($("#primium_pc:checked").val() == "Y")
{
//ํผ์จ๋ฐฉ ํผ์ผํธ์จ ๊ณ์ฐ
var pc_class = (minus_bp * 30 / 100);
//์ฝค๋ง ์ฐ๊ธฐ
var pc_in = number_format(pc_class);
//๋ฐ์๊ธ์ก + ํ ์ธ๋ฐ์๊ธ์ก ํฉ์ฐ
re_total = re_total + pc_class;
//๊ฐ๋ณํ ์ธ๊ธ์ก์ ํ๊ธฐ
$("#class_bp").text(pc_in);
}
//๋ ๋ค N์ผ๋
if($("#top_class:checked").val() == "N" && $("#primium_pc:checked").val() == "N")
{
//0์ผ๋ก ํ๊ธฐ
$("#class_bp").text(0);
}
}
//์ฟ ํฐ์์๋ฃ ํ ์ธ๊ธ์ก ์ค์
var coupon_in = number_format(su_per);
//์ต์ข
๊ธ์ก ์ฌ ์ค์
var re_total_in = number_format(re_total);
//์ฟ ํฐ ์ฐจ๊ฐ๊ธ์ก ๋ฃ๊ธฐ
$("#coupon_bp").text(coupon_in);
//์ต์ข
๊ธ์ก ๋ฃ๊ธฐ
$("#total_bp").text(re_total_in);
//์ฟ ํฐํ ์ธ์จ ๋ฃ๊ธฐ
$("#per").text($("#use_coupon").val());
}
</script>
<body>
<div class="bp_layer">
<b>ํ๋งค ์์ ๊ธ์ก</b>
<input type="text" name="bp_01" id="bp_01" onkeydown="return isNum();" onkeyup="this.value=this.value.replace(/[^0-9]/g,'');" onblur="get_data(this.value);" onfocus="comma_less(this.value, 'bp_01')" maxlength="15"><b> BP</b>
<select id="use_coupon" onchange="get_bp();">
<option value="">์ฟ ํฐ ์ ํ</option>
<option value="5">5%</option>
<option value="10">10%</option>
<option value="15">15%</option>
<option value="20">20%</option>
<option value="25">25%</option>
<option value="30">30%</option>
<option value="35">35%</option>
<option value="40">40%</option>
<option value="45">45%</option>
<option value="50">50%</option>
</select>
</div>
<br>
<div>
<b>TOP CLASS ๊ธฐ๋ณธ์์๋ฃ 20% ํ ์ธ</b>
<span>๋ณด์ </span><input type="radio" id="top_class" name="top_class" value="Y" onchange="get_bp();">
<span>๋ฏธ๋ณด์ </span><input type="radio" id="top_class" name="top_class" value="N" onchange="get_bp();" checked>
<br>
<br>
<b>ํ๋ฆฌ๋ฏธ์ PC๋ฐฉ ๊ธฐ๋ณธ์์๋ฃ 30% ํ ์ธ</b>
<span>์ฌ์ฉ</span><input type="radio" id="primium_pc" name="primium_pc" value="Y" onchange="get_bp();">
<span>๋ฏธ์ฌ์ฉ</span><input type="radio" id="primium_pc" name="primium_pc" value="N" onchange="get_bp();" checked>
</div>
<br>
<div>
<b>๊ธฐ๋ณธ ์์๋ฃ (40%)</b> : -<b id="default_bp">0</b><b> BP</b>
<br>
<br>
<b>์์๋ฃ ํ ์ธ ๊ธ์ก (์ด </b><b id="per">0</b> <b>% ํ ์ธ)</b> : <b id="coupon_bp">0</b><b> BP</b>
<br>
<br>
<b>๊ฐ๋ณ ํ ์ธ ๊ธ์ก</b> : <b id="class_bp">0</b><b> BP</b>
<br>
<br>
<b>์ต์ข
๋ฐ๋ ๊ธ์ก</b> : <b id="total_bp">0</b><b> BP</b>
</div>
</body>
</html>
์ค์ํ๋ ๋ถ๋ถ
์๋ง๋ ์ ๋ ฅ๊ฐ์ ๋ฐ์์ค๋
<b>ํ๋งค ์์ ๊ธ์ก</b>
<input type="text" name="bp_01" id="bp_01" onkeydown="return isNum();" onkeyup="this.value=this.value.replace(/[^0-9]/g,'');" onblur="get_data(this.value);" onfocus="comma_less(this.value, 'bp_01')" maxlength="15"><b> BP</b>
์ด ๋ถ๋ถ์ด ์ ์ผ ์ค์ํ๋ค๊ณ ์๊ฐํด์.
์ด์ ๋ input ํ๊ทธ์ ์ด๋ฒคํธ๋ฅผ ๊ต์ฅํ ๋ง์ด ๊ฑธ์ด ๋ ์ด์ ๊ฐ ์์ต๋๋ค.
์ฒซ์งธ๋ ํ๊ธ, ์๋ฌธ์ด ์ ๋ ฅ์ด ๋๋ฉด ์ ๋์๊ธฐ ๋๋ฌธ์
์๋ฌธ์ onkeydown ์ด๋ฒคํธ๋ฅผ ๊ฑธ์ด ์๋์ ํจ์๋ฅผ ํ๊ฒ ๋ง๋ค์์ต๋๋ค.
//input์ ์ซ์๋ง ์
๋ ฅ๋ฐ๊ธฐ
function isNum()
{
if ((event.keyCode >= 45 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105) || event.keyCode == 8|| event.keyCode==13 || event.keyCode==9) return true;
else return false;
}
ํค๊ฐ ๋๋ ธ์ ๋ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํค๋ input ํ๊ทธ์ ์ด๋ฒคํธ ์ค ํ๋์ด๋ฉฐ ํด๋น ์กฐ๊ฑด์ ๋ถํฉํ์ง ์๋๋ค๋ฉด ์ ๋ ฅ์ด ์๋๊ฒ ์ฒ๋ฆฌํ ๊ฒ์ ๋๋ค.
์์งํ ์ด๊ฑด ์์ด๋ ์๊ด์์ต๋๋ค.
์ ๊ท์์ด ์๊ธฐ ๋๋ฌธ์ด์ฃ .
onkeyup="this.value=this.value.replace(/[^0-9]/g,'');"
์ด ๋ถ๋ถ์ ๋ณด์๋ฉด ํค๋ฅผ ๋๋ ๋ค ๋ผ์์ ๋ 0~9 ๊ฐ๋ง ๋ฐ๊ณ ๋๋จธ์ง ๋ค ๋น ๊ฐ์ผ๋ก ์ฒ๋ฆฌํ๋ ๋ถ๋ถ์ ๋๋ค.
๊ทธ๋์ ์๋ฌธ, ํ๊ธ ์ ๋ถ ๋ค ํ๊ฒจ ๋ผ ์ ์๋ ๊ฑฐ์ฃ .
์์ ๊ฐ์ด ํค๊ฐ ์ฌ๋ผ์ฌ ๋ ์ด๋ฒคํธ๋ฅผ ๊ฑธ์ด ๋น ๊ฐ์ด ๋๊ฒ๋ ์ฒ๋ฆฌํ ๊ฒ์ ๋๋ค. ์ซ์๋ ์ ๋ ฅ๋ฐ๊ณ ๋๋จธ์ง ๋น ๊ฐ์ผ๋ก ๋ง๋ญ๋๋ค.
๊ทธ๋ฆฌ๊ณ onblur ์ด๋ฒคํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ธํ ์ฐฝ์์ ๋๊ฐ์ ๋ ๋๋ ํฌ์ปค์ฑ์ด ํด์ ๋์์ ๋ ๋ฐ์ํ๋ ํจ์๋ก
ํฌ์ปค์ฑ ์ ๊น์ง์ ์ ๋ ฅ๊ฐ์ ๊ฐ์ง๊ณ ๊ฐ์ ๊ตฌํด์ค๋ ํจ์๋ฅผ ํ์ ์ต๋๋ค.
get_data()๋ผ๋ ํจ์์ฃ .
๊ฐ๋จํ ๋ณด์ฌ๋๋ฆฌ๋ฉด
์ด๋ ๊ฒ ์ธํ ์ฐฝ์ด ๋นํ์ฑํ๋ ๋ ์ฝค๋ง ์ฐ์ด์ฃผ๋ ํจ์๋ฅผ ์ด๋ฒคํธ์ ๊ฑธ์ด๋ ๊ฒ๋๋ค.
//๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ
function get_data(double)
{
//์
๋ ฅ ๊ฐ๊ฒฉ
var put_bp = double.toString();
//intํ์ผ๋ก 1000๊ณผ ๋น๊ต.
if(parseInt(put_bp) < 1000 && put_bp.length != 0)
{
alert("1,000(์ฒ)BP์ด์์ ๊ฐ์ ์
๋ ฅํด ์ฃผ์ธ์.");
$("#bp_01").val(""); //์ง์ฐ๊ธฐ
$("#bp_01").focus(); //ํฌ์ปค์ค ํด์ฃผ๊ธฐ
return false; //์คํ์ค์ง
}
//๊ธฐ๋ณธ์์๋ฃ 40% ์ ์ธํ ๊ธ์ก
var minus_bp = (put_bp * 40 / 100);
//์ต์ข
๋ฐ๋๊ธ์ก ๋ฃ์ด์ฃผ๊ธฐ
var real_bp = (put_bp - minus_bp);
//์ฟ ํฐ ์ค์ ๊ฐ์ด ์๋์ง?
if($("#use_coupon").val())
{
//์ ํํ ์ฟ ํฐ%์ ๋ฐ๋ผ ๊ฒ์ฐ
var su_per = (minus_bp * $("#use_coupon").val() / 100);
//์ต์ข
๊ธ์ก์ ํ ์ธ๋๋๊ธ์ก ํฉ์น๊ธฐ
real_bp = real_bp + su_per;
//์ฟ ํฐ์ผ๋ก ํ ์ธ๋ฐ๋๊ธ์ก ์ฝค๋ง์ฐ๊ธฐ ์์
var coupon_in = number_format(su_per);
//ํ ์ธ๋ฐ๋๊ธ์ก ๋ฃ์ด์ฃผ๊ธฐ
$("#coupon_bp").text(coupon_in);
//ํผ์ผํธ์จ์ ๋ฐ๋ฅธ ํ๊ธฐ
$("#per").text($("#use_coupon").val());
}
// topClass or primium pc ๋์คํ๋๋ผ๋ Y์ผ๋
if($("#top_class:checked").val() == "Y" && $("#primium_pc:checked").val() == "Y")
{
// ํํด๋์ค๋ ์์๋ฃ ๋๋น 20% ํ ์ธ
var top_class = (minus_bp * 20 / 100);
// ํ๋ฆฌ๋ฏธ์ pc๋ฐฉ์ ์์๋ฃ ๋๋น 30% ํ ์ธ
var pc_class = (minus_bp * 30 / 100);
//๋ ๋ค ์ด๊ธฐ๋๋ฌธ์ ๋์ด ํ ์ธํ ๊ธ์ก์ ํฉ์ณ์ค๋ค.
var top_pc = parseInt(top_class)+parseInt(pc_class);
//๊ฐ๋ณ ํ ์ธ๊ธ์ก์ ๋ฐ๋ฅธ ์ฝค๋ง์ฐ๊ธฐ.
var top_in = number_format(top_pc);
//์ต์ข
๋ฐ์๊ธ์ก + ํํด๋์ค ํ ์ธ๊ธ์ก ํฉ์ฐ
real_bp = real_bp + top_pc;
$("#class_bp").text(top_in);
}
else
{
//ํํด๋์ค๋ง ์ผ๋
if($("#top_class:checked").val() == "Y")
{
//ํํด๋์ค ํผ์ผํธ์จ ๊ณ์ฐ
var top_class = (minus_bp * 20 / 100);
//์ฝค๋ง ์ฐ๊ธฐ
var top_in = number_format(top_class);
//๋ฐ์๊ธ์ก + ํ ์ธ๋ฐ์๊ธ์ก ํฉ์ฐ
real_bp = real_bp + top_class;
//๊ฐ๋ณํ ์ธ๊ธ์ก์ ํ๊ธฐ
$("#class_bp").text(top_in);
}
//ํ๋ฆฌ๋ฏธ์ pc๋ฐฉ์ผ๋
if($("#primium_pc:checked").val() == "Y")
{
//ํผ์จ๋ฐฉ ํผ์ผํธ์จ ๊ณ์ฐ
var pc_class = (minus_bp * 30 / 100);
//์ฝค๋ง ์ฐ๊ธฐ
var pc_in = number_format(pc_class);
//๋ฐ์๊ธ์ก + ํ ์ธ๋ฐ์๊ธ์ก ํฉ์ฐ
real_bp = real_bp + pc_class;
//๊ฐ๋ณํ ์ธ๊ธ์ก์ ํ๊ธฐ
$("#class_bp").text(pc_in);
}
//๋ ๋ค N์ผ๋
if($("#top_class:checked").val() == "N" && $("#primium_pc:checked").val() == "N")
{
//0์ผ๋ก ํ๊ธฐ
$("#class_bp").text(0);
}
}
//์ฝค๋ง ์์
var put_in = number_format(put_bp); //์
๋ ฅํ ๊ฐ.
var minus_in = number_format(minus_bp); //์์๋ฃ ๊ฐ.
var total_in = number_format(real_bp); //์ต์ข
๋ฐ์๊ธ์ก ๊ฐ.
//๊ตฌํ ๊ฐ ๋ฃ๊ธฐ
$("#bp_01").val(put_in);
$("#default_bp").text(minus_in);
$("#total_bp").text(total_in);
}
๋ ํฌ์ปค์ฑ(input ํ์ฑํ)์ด ๋์์ ๋ ์ฝค๋ง๋ฅผ ์ฐ์ด์คฌ๋ ๋ถ๋ถ์ ๋ค์ ์ฝค๋ง๋ฅผ ์ ๊ฑฐํ์ฌ ๊ฐ์ ๋ฐ์ ์ฒ๋ฆฌํ๊ฒ๋ onfocus ์ด๋ฒคํธ๋ฅผ ์ฃผ์์ต๋๋ค.
์์ ๊ฐ์ ํจ๊ณผ๋ฅผ ๋ผ ์ ์์ต๋๋ค.
์์ ์ฌ์ฉ๋ ํจ์๋ ์๋์ ์ ์ ๊ธ๋ก ์ฒจ๋ถํ์์ต๋๋ค.
//์ฝค๋ง ์ ๊ฑฐํ๊ธฐ
function comma_less(amount, id)
{
var set_bp = $("#"+id).val(amount.replace(/,/g, ''));
return set_bp;
}
๋ ์ฟ ํฐ ์ ํํ ๋์ ๊ฐ์ด ๋ฐ๋๊ฒ ์ค์ ํ ๊ฑด ๋ฐ๋ก onchange ์ด๋ฒคํธ๋ฅผ ๊ฑธ์ด์ฃผ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
<select id="use_coupon" onchange="get_bp();">
<option value="">์ฟ ํฐ ์ ํ</option>
<option value="5">5%</option>
<option value="10">10%</option>
<option value="15">15%</option>
<option value="20">20%</option>
<option value="25">25%</option>
<option value="30">30%</option>
<option value="35">35%</option>
<option value="40">40%</option>
<option value="45">45%</option>
<option value="50">50%</option>
</select>
์์ ๋ณด์๋ฉด select ํ๊ทธ์ onchange ์ด๋ฒคํธ๋ฅผ ๊ฑธ์ด get_bp()๋ผ๋ ํจ์๋ฅผ ํธ์ถํ๊ฒ ๋ฉ๋๋ค.
์๋๋ get_bp() ํจ์์ ๋๋ค.
//๊ณ์ฐ๋ BP๊ตฌํ๊ธฐ
function get_bp()
{
//๊ธฐ๋ณธ ์์๋ฃ ๊ฐ
var default_bp = $("#bp_01").val().replace(/,/g, '');
//๊ธฐ๋ณธ์์๋ฃ 40% ์ ์ธํ ๊ธ์ก
var minus_bp = (default_bp * 40 / 100);
//์ต์ข
๋ฐ๋๊ธ์ก ๋ฃ์ด์ฃผ๊ธฐ
var real_bp = (default_bp - minus_bp);
var bp = $("#default_bp").text().replace(/,/g, '');
var su_per = (bp * $("#use_coupon").val() / 100);
var re_total = parseInt(real_bp) + parseInt(su_per);
// topClass or primium pc ๋์คํ๋๋ผ๋ Y์ผ๋
if($("#top_class:checked").val() == "Y" && $("#primium_pc:checked").val() == "Y")
{
// ํํด๋์ค๋ ์์๋ฃ ๋๋น 20% ํ ์ธ
var top_class = (minus_bp * 20 / 100);
// ํ๋ฆฌ๋ฏธ์ pc๋ฐฉ์ ์์๋ฃ ๋๋น 30% ํ ์ธ
var pc_class = (minus_bp * 30 / 100);
//๋ ๋ค ์ด๊ธฐ๋๋ฌธ์ ๋์ด ํ ์ธํ ๊ธ์ก์ ํฉ์ณ์ค๋ค.
var top_pc = parseInt(top_class)+parseInt(pc_class);
//๊ฐ๋ณ ํ ์ธ๊ธ์ก์ ๋ฐ๋ฅธ ์ฝค๋ง์ฐ๊ธฐ.
var top_in = number_format(top_pc);
//์ต์ข
๋ฐ์๊ธ์ก + ํํด๋์ค ํ ์ธ๊ธ์ก ํฉ์ฐ
re_total = re_total + top_pc;
$("#class_bp").text(top_in);
}
else
{
//ํํด๋์ค๋ง ์ผ๋
if($("#top_class:checked").val() == "Y")
{
//ํํด๋์ค ํผ์ผํธ์จ ๊ณ์ฐ
var top_class = (minus_bp * 20 / 100);
//์ฝค๋ง ์ฐ๊ธฐ
var top_in = number_format(top_class);
//๋ฐ์๊ธ์ก + ํ ์ธ๋ฐ์๊ธ์ก ํฉ์ฐ
re_total = re_total + top_class;
//๊ฐ๋ณํ ์ธ๊ธ์ก์ ํ๊ธฐ
$("#class_bp").text(top_in);
}
//ํ๋ฆฌ๋ฏธ์ pc๋ฐฉ์ผ๋
if($("#primium_pc:checked").val() == "Y")
{
//ํผ์จ๋ฐฉ ํผ์ผํธ์จ ๊ณ์ฐ
var pc_class = (minus_bp * 30 / 100);
//์ฝค๋ง ์ฐ๊ธฐ
var pc_in = number_format(pc_class);
//๋ฐ์๊ธ์ก + ํ ์ธ๋ฐ์๊ธ์ก ํฉ์ฐ
re_total = re_total + pc_class;
//๊ฐ๋ณํ ์ธ๊ธ์ก์ ํ๊ธฐ
$("#class_bp").text(pc_in);
}
//๋ ๋ค N์ผ๋
if($("#top_class:checked").val() == "N" && $("#primium_pc:checked").val() == "N")
{
//0์ผ๋ก ํ๊ธฐ
$("#class_bp").text(0);
}
}
//์ฟ ํฐ์์๋ฃ ํ ์ธ๊ธ์ก ์ค์
var coupon_in = number_format(su_per);
//์ต์ข
๊ธ์ก ์ฌ ์ค์
var re_total_in = number_format(re_total);
//์ฟ ํฐ ์ฐจ๊ฐ๊ธ์ก ๋ฃ๊ธฐ
$("#coupon_bp").text(coupon_in);
//์ต์ข
๊ธ์ก ๋ฃ๊ธฐ
$("#total_bp").text(re_total_in);
//์ฟ ํฐํ ์ธ์จ ๋ฃ๊ธฐ
$("#per").text($("#use_coupon").val());
}
์ฟ ํฐ ๊ฐ๊ณผ radio ๊ฐ์ ๊ณ์ฐํด์ฃผ๋ ํจ์์ธ๋ฐ radio์์๋ ๊ฐ์ด ์ฒ๋ฆฌํฉ๋๋ค.
์ด ๋ถ๋ถ์ onchange ์ด๋ฒคํธ๋ get_bp()๋ก ๋์ด์์ต๋๋ค.
<div>
<b>TOP CLASS ๊ธฐ๋ณธ์์๋ฃ 20% ํ ์ธ</b>
<span>๋ณด์ </span><input type="radio" id="top_class" name="top_class" value="Y" onchange="get_bp();">
<span>๋ฏธ๋ณด์ </span><input type="radio" id="top_class" name="top_class" value="N" onchange="get_bp();" checked>
<br>
<br>
<b>ํ๋ฆฌ๋ฏธ์ PC๋ฐฉ ๊ธฐ๋ณธ์์๋ฃ 30% ํ ์ธ</b>
<span>์ฌ์ฉ</span><input type="radio" id="primium_pc" name="primium_pc" value="Y" onchange="get_bp();">
<span>๋ฏธ์ฌ์ฉ</span><input type="radio" id="primium_pc" name="primium_pc" value="N" onchange="get_bp();" checked>
</div>
ํด๋น onchange ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ ์์ ์ radio์ value๊ฐ์ด ๋ฌ๋ผ์ก์ ๋์ ๋๋ค.
์ด๋ ๊ฒ ํด๋ฆญ ์๋ง๋ค ๋ณ๊ฒฝ๋๋ ๊ฐ์ ๊ฐ์ง๊ณ ๊ณ์ํด์ ๊ฐ์ ๋ค์ ๊ฐ์ ธ์ค๋ ํจํด์ ๋ณด์ฌ์ค๋๋ค.
์ฌ๊ธฐ๊น์ง ์ฝ๋ ๋ฆฌ๋ทฐ๊ฐ ๋์ธ ๊ฑฐ ๊ฐ๋ค์ ใ ใ ๋ ๊ถ๊ธํ์ ์ ์์ผ์๋ฉด ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์ ใ ใ
์์ง ๋ง์ด ๋ถ์กฑํ๊ณ ๋ณด์ํด์ผ ํ ๋ถ๋ถ๋ ์์ง๋ง ์ ์ฐจ ์ด๋ ๊ฒ ์๋ํ๋ค ๋ณด๋ฉด ์ธ์ ๊ฐ ๊ด์ฐฎ์์ง๊ฒ ์ฃ ??
๋ง๋ค๋ฉด์ ํ๋ค์๋ ์
ํ๋ ๊ฑด ๋ฑํ ์์ง๋ง ์ต๋ํ ๋น์ทํ๊ฒ ๋ง๋๋ ค๊ณ ํ๋ ๊ฑฐ ๊ฐ์์ ใ ใ
ํ๊ณ ์ถ์ ๋ง
์๊ฐ์ด ๋ค ๋ ์คํ์ผ๋ก ์ฎ๊ธฐ๋ ๊ฒ ์ข์ ๋ถ๋ถ์ด ๋ง์ ๊ฒ ๊ฐ์ต๋๋ค.
์ฐ์ต์ด ๋ชฉ์ ์ด๋ผ๋ฉด ์ด๋ ๊ฒ ํ๋๋ฅผ ๋๊ณ ๋ฐ๋ผ ํด ๋ณด์๊ณ ๊ตฌํํ๋ ๊ฒ๋ ํ๋์ ๋ฐฉ๋ฒ์ด๋ผ ์๊ฐํฉ๋๋ค.
๋ถ์กฑํจ์ด ๋ง์ ๊ธ ๋๊น์ง ์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.
๋๊ธ