값전달시 계산 적용하는 방법
본문
평에 숫자를 직접입력해 넣으면 1,000원과 곱해서 계산이 되고 총합계에 자동으로 반영됩니다.
설정을 하나 더 두고 설정에서 숫자를 넣으면 평에 전달되어 값들이 자동계산되도록 하고 싶은데요.
위와같이 값이 전달되지만 계산이 자동반영되지 않아서
어떻게 해야할지 아래 소스코드를 올렸습니다.
조언 부탁드립니다.
<script language="JavaScript">
document.write('<style>');
document.write('.cnj_input { border-width:1; border-style:solid; border-color:#000000; color:#0084D4; background-color:white;}');
document.write('</style>');
// 견적서 자동 계산하기
function onlyNum(objtext1) {
var inText = objtext1.value;
var ret;
for (var i = 0; i < inText.length; i++) {
ret = inText.charCodeAt(i);
if ((ret < 48) || (ret > 57)) {
alert("숫자만을 입력하세요");
objtext1.value = "";
objtext1.focus();
return false;
}
}
return true;
}
var uppmesg;
price_p = new Array(1); // 총 배열 숫자
price_p[0] = 1000; // 첫번째 제품 가격
// 추가시
// price_p[추가번호] = 가격; // 추가 제품 가격
total_cost = 0; // 합계 기본값
size_cost = new Array(0); // 배열숫자 만큼 0추가
function Chage_Money(num) {
var f = document.fwrite;
getcost(num)
total_cost = 0;
for (i=0; i<1; i++) { // 총 배열숫자와 동일해야함
total_cost += size_cost[i];
f.total_cost.value = eval(total_cost);
}
}
// 아래는 수정할 필요 없음
function getcost(stype){
var f = document.fwrite;
tempcost = 0;
temp = "f.cnjnum";
temp += stype;
tempcost += eval(temp + ".value") * price_p[stype-1];
cnjcost = "cnjcost" + stype + "";
f.elements[cnjcost].value = tempcost;
size_cost[stype-1] = tempcost;
}
//-->
</script>
.
.
.
설정: <input type="text" name="test2" id="test2" onkeyup="onlyNum(this,11);" onchange="onlyNum(this,11);" /> 평
1,000 X <input type="text" class="cnj_input" name="cnjnum1" onKeyup="javascript:Chage_Money(1);onlyNum(fwrite.cnjnum1);" onChange="javascript:Chage_Money(1)" ; size="3" maxlength="3" style="text-align:center;" > 평
= <input type="text" class="cnj_input" name="cnjcost1" size="7" readonly style="text-align:right;"> 원
총합계: <input type="text" class="cnj_input" name="total_cost" size="10" readonly style="text-align:right;"> 원
<script>
//다른폼에 값전달
$("input[name='test2']").change(function(){
$("input[name='cnjnum1']").val( $(this).val() );
});
</script>
답변 2
이 부분 수정해보세요..
<script>
//다른폼에 값전달
$("input[name='test2']").change(function(){
$("input[name='cnjnum1']").val( $(this).val() );
Chage_Money(1);
});
</script>
설정: <input type="text" name="test2" id="test2" onkeyup="Chage_Money(1);onlyNum(this,11);" onchange="Chage_Money(1);onlyNum(this,11);" /> 평
설정하실때도 Chage_Money함수를 선언해주셔야 될것같네요
답변을 작성하시기 전에 로그인 해주세요.