2017-11-09 14 views
0

2 개의 소계로 항목을 계산하고 그 총합을 하나의 총계로 합산하는 데 필요한 양식입니다.jQuery를 사용하여 부분합과 합계를 계산하는 방법은 무엇입니까?

subTotal1 및 subTotal2에 대해서만 합계를 계산할 수 있지만 총 수를 계산할 수있는 단서가 없기 때문에 총 계산이 실패했습니다. 수식이 아니라 JavaScript 코드입니다.

여기 내 코드입니다 :

\t $(document).on("change", ".qty1", function() { 
 
\t  var sum = 0; 
 
\t  $(".qty1").each(function(){ 
 
\t   sum += +$(this).val(); 
 
\t  }); 
 
\t  $(".subTotal1").val(sum); 
 
\t }); 
 
\t $(document).on("change", ".qty2", function() { 
 
\t  var sum = 0; 
 
\t  $(".qty2").each(function(){ 
 
\t   sum += +$(this).val(); 
 
\t  }); 
 
\t  $(".subTotal2").val(sum); 
 
\t }); 
 
\t // Doesn't work 
 
\t $(document).on("change", ".subTotal", function() { 
 
\t  var sum = 0; 
 
\t  $(".subTotal").each(function(){ 
 
\t   sum += +$(this).val(); 
 
\t  }); 
 
\t  $(".total").val(sum/2); 
 
\t });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form method="post" action="./"> 
 
    \t \t Shoes 1: <input type="number" name="shoes1" class="qty1"><br> 
 
\t  Shoes 2: <input type="number" name="shoes2" class="qty1"><br> 
 
\t  Shoes 3: <input type="number" name="shoes3" class="qty1"><br> 
 
\t  Sub total: <input type="number" name="subTotal1" class="subTotal1 subTotal"><br> 
 
\t  <br> 
 
\t  Sandals 1: <input type="number" name="sandals1" class="qty2"><br> 
 
\t  Sandals 2: <input type="number" name="sandals2" class="qty2"><br> 
 
\t  Sandals 3: <input type="number" name="sandals3" class="qty2"><br> 
 
\t  Sub total: <input type="number" name="subTotal2" class="subTotal2 subTotal"><br> 
 
\t  <br> 
 
\t  Total: <input type="number" name="total" class="total"><br> 
 
\t  <br> 
 
\t  Mean (50% Shoes + 50% Sandals)/2: <input type="number" name="mean" class="mean"> 
 
\t  <br> 
 
\t \t <input type="submit" value="Submit"> 
 
    \t </form>

+0

을 계산 완료되면 ** 함수를 호출하지만 전체 계산은 실패했다? – guradio

+0

* "평균 수를 계산할 단서가 없습니다"* - 당신이 수학을 이해하지 못했거나 JS로 구현하는 방법을 모르는 중입니까? 질문을 입력하여 예제 입력과 해당 입력에 대한 원하는 결과를 제공하십시오. – nnnnnn

답변

1

문서는 자바 스크립트 사용자 만 수행 변화를 감지하지 않거나 다른 일부 무한 루프를 통해 갈 수 있습니다. 그래서 그냥 당신이 말할 수있는 방법 ** 당신은 합계

\t $(document).on("change", ".qty1", function() { 
 
\t  var sum = 0; 
 
\t  $(".qty1").each(function(){ 
 
\t   sum += +$(this).val(); 
 
\t  }); 
 
\t  $(".subTotal1").val(sum); 
 
      calcTotal(); 
 
\t }); 
 
\t $(document).on("change", ".qty2", function() { 
 
\t  var sum = 0; 
 
\t  $(".qty2").each(function(){ 
 
\t   sum += +$(this).val(); 
 
\t  }); 
 
\t  $(".subTotal2").val(sum); 
 
      calcTotal(); 
 
\t }); 
 
\t // Does work 
 
\t function calcTotal() { 
 
\t  var sum = 0; 
 
\t  $(".subTotal").each(function(){ 
 
\t   sum += +$(this).val(); 
 
\t  }); 
 
\t  $(".total").val(sum); 
 
      $(".mean").val(sum/2); 
 
\t };
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form method="post" action="./"> 
 
    \t \t Shoes 1: <input type="number" name="shoes1" class="qty1"><br> 
 
\t  Shoes 2: <input type="number" name="shoes2" class="qty1"><br> 
 
\t  Shoes 3: <input type="number" name="shoes3" class="qty1"><br> 
 
\t  Sub total: <input type="number" name="subTotal1" class="subTotal1 subTotal"><br> 
 
\t  <br> 
 
\t  Sandals 1: <input type="number" name="sandals1" class="qty2"><br> 
 
\t  Sandals 2: <input type="number" name="sandals2" class="qty2"><br> 
 
\t  Sandals 3: <input type="number" name="sandals3" class="qty2"><br> 
 
\t  Sub total: <input type="number" name="subTotal2" class="subTotal2 subTotal"><br> 
 
\t  <br> 
 
\t  Total: <input type="number" name="total" class="total"><br> 
 
\t  <br> 
 
\t  Mean (50% Shoes + 50% Sandals)/2: <input type="number" name="mean" class="mean"> 
 
\t  <br> 
 
\t \t <input type="submit" value="Submit"> 
 
    \t </form>