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

자바에서 자동 소계의 합계 자동입력 소스 문의 채택완료

바케스터 2년 전 조회 3,034

여분필드를 이용하여 각 내용의 소계를 자동으로 계산하여 합계를 출력하고싶습니다.

자바에 대해서는 문외한이라 여러 선배님들의 코드를 보고 아래와 같이 작성했습니다.

 

한데 각 입력단계에서 소계까지는 자동으로 계산되는데 합계는 소계를 조금 건들어야 계산이 되더군요

아마 키보드 이벤트 때문일것같은데요 혹시 합계까지 자동으로 입력되는 방법이 있을지싶어 문의드립니다.

( 노가다 코드라 죄송합니다. ㅠㅠ)

 

</p>

<p><script>

$(document).ready(function() {

    $('.sum_11').change(function(evt) {

        var sum11 = 0;

        $('.sum_11').each(function(){

               sum11 += +$(this).val()  ;

         });

         $('input[name=wr_193]').val(Math.round(sum11));

    });

    $('.sum_12').change(function(evt) {

        var sum12 = 0;

        $('.sum_12').each(function(){

               sum12 += +$(this).val()  ;

         });

         $('input[name=wr_196]').val(Math.round(sum12));

    });

    $('.sum_13').change(function(evt) {

        var sum13 = 0;

        $('.sum_13').each(function(){

               sum13 += +$(this).val()  ;

         });

         $('input[name=wr_197]').val(Math.round(sum13));</p>

<p>    });

});</p>

<p></script></p>

<p>1군: <input type="number" name="wr_191" id="wr_191" value="<?php echo $write['wr_191']; ?>" size="50" maxlength="20" class="sum_11" min="1" max="5" >


2군: <input type="number" name="wr_192" id="wr_192" value="<?php echo $write['wr_192']; ?>" size="50" maxlength="20" class="sum_11" min="1" max="5" >


소계: <input type="number" name="wr_193" id="wr_193" value="<?php echo $write['wr_193']; ?>" size="50" maxlength="20" class="sum_13" >





3군: <input type="number" name="wr_194" id="wr_194" value="<?php echo $write['wr_194']; ?>" size="50" maxlength="20" class="sum_12" min="1" max="5" >


4군: <input type="number" name="wr_195" id="wr_195" value="<?php echo $write['wr_195']; ?>" size="50" maxlength="20" class="sum_12" min="1" max="5" >


소계: <input type="number" name="wr_196" id="wr_196" value="<?php echo $write['wr_196']; ?>" size="50" maxlength="20" class="sum_13" >





합계 : <input type="number" name="wr_197" id="wr_197" value="<?php echo $write['wr_197']; ?>" size="50" maxlength="20" readonly >

 

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

답변 1개

채택된 답변
+20 포인트
2년 전

change를 keyup으로 바꾸시면....

</p>

<p><script src="<a href="https://code.jquery.com/jquery-1.12.4.min.js"></script>" target="_blank" rel="noopener noreferrer">https://code.jquery.com/jquery-1.12.4.min.js"></script></a>

<script>

$(document).ready(function() {

    var sum13 = 0;

    $('.sum_11').keyup(function(evt) {

        var sum11 = 0;

        $('.sum_11').each(function(){

               sum11 += +$(this).val()  ;

         });

         $('input[name=wr_193]').val(Math.round(sum11));

         $('input[name=wr_197]').val(Math.round($('input[name=wr_193]').val()) + Math.round($('input[name=wr_196]').val()));

    });

    $('.sum_12').keyup(function(evt) {

        var sum12 = 0;

        $('.sum_12').each(function(){

               sum12 += +$(this).val()  ;

         });

         $('input[name=wr_196]').val(Math.round(sum12));

         $('input[name=wr_197]').val(Math.round($('input[name=wr_193]').val()) + Math.round($('input[name=wr_196]').val()));

    });

});

</script>

1군: <input type="number" name="wr_191" id="wr_191" value="<?php echo $write['wr_191']; ?>" size="50" maxlength="20" class="sum_11" min="1" max="5" >


2군: <input type="number" name="wr_192" id="wr_192" value="<?php echo $write['wr_192']; ?>" size="50" maxlength="20" class="sum_11" min="1" max="5" >


소계: <input type="number" name="wr_193" id="wr_193" value="<?php echo $write['wr_193']; ?>" size="50" maxlength="20" class="sum_13" >





3군: <input type="number" name="wr_194" id="wr_194" value="<?php echo $write['wr_194']; ?>" size="50" maxlength="20" class="sum_12" min="1" max="5" >


4군: <input type="number" name="wr_195" id="wr_195" value="<?php echo $write['wr_195']; ?>" size="50" maxlength="20" class="sum_12" min="1" max="5" >


소계: <input type="number" name="wr_196" id="wr_196" value="<?php echo $write['wr_196']; ?>" size="50" maxlength="20" class="sum_13" >





합계 : <input type="number" name="wr_197" id="wr_197" value="<?php echo $write['wr_197']; ?>" size="50" maxlength="20" readonly >
</p>

<p>

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

답변에 대한 댓글 1개

바케스터
2년 전
답변 감사드립니다.
소스를 적용해서 테스트 해봤는데요 코드 수정해주신것에 keyup은 좀 이상하게 작동해서(값 저장안됨) 혹시나해서 change로 바꿔봤는데 제대로 동작하네요... 정말감사합니다.
편안한 밤 보내세요

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

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

로그인