답변 4개
function cal(formname, index){ var f = document.formname; var price = eval("f.price"+index+".value");
var qyt = eval("f.qty"+index+".value");
var delivery_cost = eval("f.delivery_cost"+index+".value");
var sum = parseInt((price*qyt))+parseInt(delivery_cost);
eval("f.total_price"+index+".value = sum");
}
다시 수정했습니다 ㅋ 배열로 저장되고 불러와질줄 알았는데 테스트 해보니 아니네요
일단 이걸로 하니깐 되긴되는데 이름을 qty[]이런식으로 설정 해야하는 건가요?
그게아니라면 이렇게 하시면 되긴됩니다 ㅋ 배열로 처리하는거는 한번 찾아봐야겠어요
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
</strong></p>
<p><form name="폼이름">
<? for($k=0; $k<count($price); $k++){ ?>
단가 <input type="text" id="price[<?=$k?>]" name="price[<?=$k?>]" value="<?=$price[$k]?>" class="inputgrn-r" onKeyDown='onlyNumDecimalInput();' maxlength="7" size="6">원
수량 <input type="text" id="qty[<?=$k?>]" name="qty[<?=$k?>]" value="<?=$qty[$k]?>" class="inputgrn-r" style="width:50px" onKeyDown='onlyNumber(this);' itemname="수량" maxlength=6 size=6 min="1"/>개
배송비 <input type="text" id="delivery_cost[<?=$k?>]" name="delivery_cost[<?=$k?>]" value="<?=$delivery_cost[$k]?>" onKeyDown='onlyNumDecimalInput();' onKeyUp="cal(폼이름, <?=$k?>)"; itemname="배송비" maxlength=7 size=5/>
합계 <input type="text" id="total_price[<?=$k?>]" name="total_price[<?=$k?>]" value="<?=$total_price[$k]?>" class="inputgrn-r" onKeyDown='onlyNumDecimalInput();' itemname="합계" maxlength=8 size=7 />
<? } ?></p>
<p></form></p>
<p> </p>
<p><script></p>
<p>function cal(폼이름, index){
var f = document.폼이름;
var price = f.price[index].value();
var qyt = f.qyt[index].value();
var delivery_cost = f.delivery_cost[index].value();
f.total_price[index].value = price * qyt + delivery_cost;</p>
<p>}</p>
<p></script></p>
<p> <strong>
아네 여기서 말하는 폼네임은 지정해주셔야합니다. 아마 기존에 form이 있는것 같아서 제가 임의로 formname이라고 했는데
form 지정해놓은 것이 있으면 기존의 것을 쓰시고 지정되어 있지 않다면 위의 코드 처럼
을 설정하셔야합니다.그리고 코드는 대략적인 길만 적었던 거라서 코드 수정해서 다시 올렸습니다
답변에 대한 댓글 2개
감사드려요~
VM204913:4 Uncaught TypeError: Cannot read property '0' of undefined
at cal (eval at <anonymous> (jquery-1.8.3.min.js:2), <anonymous>:4:24)
at HTMLInputElement.onkeyup
에러나서요,,,
function cal(update_view, index){
var f = document.update_view;
var price = f.price[index].value(); 여기에 빨간 x
var qyt = f.qyt[index].value();
var delivery_cost = f.delivery_cost[index].value();
f.total_price[index].value = price * qyt + delivery_cost;
}
댓글을 작성하려면 로그인이 필요합니다.
</strong></p>
<p><? for($k=0; $k<count($price); $k++){ ?> </p>
<p>
단가 <input type="text" name="price[]" value="<?=$price[$k]?>" class="inputgrn-r" onKeyDown='onlyNumDecimalInput();' maxlength="7" size="6">원
수량 <input type="text" name="qty[]" value="<?=$qty[$k]?>" class="inputgrn-r" style="width:50px" onKeyDown='onlyNumber(this);' itemname="수량" maxlength=6 size=6 min="1"/>개</p>
<p> 배송비 <input type="text" name="delivery_cost[]" value="<?=$delivery_cost[$k]?>" onKeyDown='onlyNumDecimalInput();' onKeyUp="cal(formname, <?=$k?>)"; itemname="배송비" maxlength=7 size=5/></p>
<p> 합계 <input type="text" name="total_price[]" value="<?=$total_price[$k]?>" class="inputgrn-r" onKeyDown='onlyNumDecimalInput();' itemname="합계" maxlength=8 size=7 /></p>
<p>
<? } ?></p>
<p>function cal(formname, index){
var f = document.formname;
var price = f.price[index].value();
var qyt = f.qyt[index].value();
var delivery_cost = f.delivery_cost[index].value();
f.total_price[index].value = price * qyt + delivery_cost;
}</p>
<p><strong>
아 질문을 잘못 이해했습니다, 배송비를 입력시 수정값을 적용하신다는 거죠?
대충 이런방향으로 하면 되지 않을까요 ㅋ
답변에 대한 댓글 1개
at HTMLInputElement.onkeyup 에러 뜨네여
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
동적추가다보니 배열로 해야 해서요,,ㅎ
다시 알려주신 방법으로 하니 계산은 되는데
데어터가
price필드에 배열로 들어가야 하는데 날라가네요,,,어렵네여