자바에서 자동 소계의 합계 자동입력 소스 문의 채택완료
바케스터
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로 바꿔봤는데 제대로 동작하네요... 정말감사합니다.
편안한 밤 보내세요