테스트 사이트 - 개발 중인 베타 버전입니다

코드 좀 줄이고 싶어요 채택완료

민쯩먼저깔게요 9년 전 조회 1,961

소스 참고해서 만들고 있는데...

2줄은 했습니다.

이런 식으로 20행을 해야 하는데..

스크립트 엄청 길어질거 같은데..

줄일 수 있을련지요,,,

 

그리고  가로 합계금액은 class로 지정하고

 

맨밑에 all_total로 총계를 뽑고 싶은데...자바 class부분은 

어떻게 처리해야 할지요,, 

 

 

 

 

 

 

 

 

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트

</p><p><script language='javascript'> 
function sum(n) {
    var t = 0;
    for(i=1; i<4; i++) {
        t = t + Number(document.getElementById("f" + n + "_" + i).value);
    }
    document.getElementById("f" + n + "_4").value = t;
}
</script> 
<INPUT  id=f1_1 onkeyup="sum(1);"> 
<INPUT  id=f1_2 onkeyup="sum(1);"> 
<INPUT  id=f1_3 onkeyup="sum(1);"> 
<INPUT  id=f1_4 name=total>


<INPUT  id=f2_1 onkeyup="sum(2);"> 
<INPUT  id=f2_2 onkeyup="sum(2);"> 
<INPUT  id=f2_3 onkeyup="sum(2);"> 
<INPUT  id=f2_4 name=total></p><p>

jquery로 처리하면 훨씬 간단하게 될 것 같은데 javascript로만 하셔서... 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 5개

민쯩먼저깔게요
9년 전
존경스럽습니다,,정말 간결하고 잘되네요~

1과2를 곱한뒤에 3은 더해야 하는데
이경우 어디를 고쳐야 하는지요,
그리고
각 total이 나오면

맨밑에 all_total 을 내고 싶은데..도와주십시오.
늘 맨입으로 받아먹어서 죄송스러워요,,,
왕계란
9년 전
[code]
function sum(n) {
var t = new Array();
for(i=1; i<4; i++) {
t.push(Number(document.getElementById("f" + n + "_" + i).value));
}
document.getElementById("f" + n + "_4").value = (t[0] * t[1]) + t[2];
}
[/code]
아 무조건 덧셈인 줄 알았네요.
저렇게 바꾸시면 됩니다.
민쯩먼저깔게요
9년 전
원하는 대로 잘됩니다,,정말 간결하게 되었군요,,
염치없지만
<INPUT id=f1_4 name=total>
이부분들의 총계 all_total이 나오게 하는거 좀 부탁드려볼 수 있을까요,,
제 실력으로는 어려워서요,,,
왕계란
9년 전
document.getElementsByName("all_total")[0].value = Number(document.getElementsByName("total")[0].value) + Number(document.getElementsByName("total")[1].value);
이거 함수 안에 추가하시고

<input type="text" name="all_total">
이건 제일 하단에 추가
민쯩먼저깔게요
9년 전
진심으로 감사드려요!!
잘됩니다. 감사합니다.
좋은 하루 되세요,,
복받으실거에요~
감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

SLOOP
9년 전

</p><p><script language='javascript'> </p><p>function sum(num){ </p><p>    var f1_1 = document.getElementById('f'+num+'_1'); </p><p>    var f1_2 = document.getElementById('f'+num+'_2'); </p><p>    var f1_3 = document.getElementById('f'+num+'_3'); </p><p>    var f1_4 = document.getElementById('f'+num+'_4'); </p><p> </p><p>    f1_4.value = Number(f1_1.value)*Number(f1_2.value)+Number(f1_3.value); </p><p> </p><p>    var total.value = 0;</p><p>    $('.total').each(function() {</p><p>        total.value += Number($(this).val());</p><p>    });</p><p>} </p><p></script></p><p> </p><p> </p><p><INPUT  id=f1_1 onkeyup="sum(1);"></p><p><INPUT  id=f1_2 onkeyup="sum(1);"> </p><p><INPUT  id=f1_3 onkeyup="sum(1);"> </p><p><INPUT  id=f1_4 class="total" clase=total c>
</p><p> </p><p><INPUT  id=f2_1 onkeyup="sum(2);"></p><p><INPUT  id=f2_2 onkeyup="sum(2);"> </p><p><INPUT  id=f2_3 onkeyup="sum(2);"> </p><p><INPUT  id=f2_4 class="total" clase=total></p><p style="word-break: break-all; color: rgb(72, 72, 72); font-family: 돋움, Dotum, sans-serif; font-size: 14.004px;"></script> </p><p style="word-break: break-all; color: rgb(72, 72, 72); font-family: 돋움, Dotum, sans-serif; font-size: 14.004px;"> </p><p style="word-break: break-all; color: rgb(72, 72, 72); font-family: 돋움, Dotum, sans-serif; font-size: 14.004px;"> </p><p style="word-break: break-all; color: rgb(72, 72, 72); font-family: 돋움, Dotum, sans-serif; font-size: 14.004px;"><INPUT  id=f1_1 onkeyup="sum(1);"> </p><p style="word-break: break-all; color: rgb(72, 72, 72); font-family: 돋움, Dotum, sans-serif; font-size: 14.004px;"><INPUT  id=f1_2 onkeyup="sum(1);"> </p><p style="word-break: break-all; color: rgb(72, 72, 72); font-family: 돋움, Dotum, sans-serif; font-size: 14.004px;"><INPUT  id=f1_3 onkeyup="sum(1);"> </p><p style="word-break: break-all; color: rgb(72, 72, 72); font-family: 돋움, Dotum, sans-serif; font-size: 14.004px;"><INPUT  id=f1_4 clase=total>
</p><p style="word-break: break-all; color: rgb(72, 72, 72); font-family: 돋움, Dotum, sans-serif; font-size: 14.004px;"> </p><p style="word-break: break-all; color: rgb(72, 72, 72); font-family: 돋움, Dotum, sans-serif; font-size: 14.004px;"><INPUT  id=f2_1 onkeyup="sum(2);"> </p><p style="word-break: break-all; color: rgb(72, 72, 72); font-family: 돋움, Dotum, sans-serif; font-size: 14.004px;"><INPUT  id=f2_2 onkeyup="sum(2);"> </p><p style="word-break: break-all; color: rgb(72, 72, 72); font-family: 돋움, Dotum, sans-serif; font-size: 14.004px;"><INPUT  id=f2_3 onkeyup="sum(2);"> </p><p style="word-break: break-all; color: rgb(72, 72, 72); font-family: 돋움, Dotum, sans-serif; font-size: 14.004px;"><INPUT  id=f2_4 clase=total></p><p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

민쯩먼저깔게요
9년 전
존경스럽습니다~ 감사합니다.
그런데 뭔가 잘못이 있는지 안되네요,,,

댓글을 작성하려면 로그인이 필요합니다.

플라이
9년 전

앞에 f1부터 f20까지를 변수로 받아 처리하면 되지 않을까 싶습니다.

일일이 다 변수를 입력받아 처리하려면 코드가 길어질수 밖에 없는거라서요

 

일단 다 반영하고 submit 할때 total 변수를 한번에 적용해 주게 되면 할때마다 계산해 주면 되지 않을까 합니다.

일일이 total의 합산값을 보여줄 필요가 없다면요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

민쯩먼저깔게요
9년 전
답변 감사합니다~

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인