program story

jQuery는 모든 텍스트 필드의 값 합계를 계산합니다.

inputbox 2020. 11. 6. 08:13
반응형

jQuery는 모든 텍스트 필드의 값 합계를 계산합니다.


숫자 값을 포함하는 약 30 개의 텍스트 필드가있는 주문 양식이 있습니다. 흐림에 대한 모든 값의 합계를 계산하고 싶습니다.

모든 텍스트 필드를 선택하는 방법을 알고 있지만 반복하여 모든 값을 합산하는 방법은 알지 못합니까?

$(document).ready(function(){
   $(".price").blur(function() {
    //loop and add up every value from $(".price").val()
   })
});

$('.price').blur(function () {
    var sum = 0;
    $('.price').each(function() {
        sum += Number($(this).val());
    });

    // here, you have your sum
});​​​​​​​​​

프로젝트에 대한 좀 더 일반적인 복사 / 붙여 넣기 기능.

sumjq = function(selector) {
    var sum = 0;
    $(selector).each(function() {
        sum += Number($(this).text());
    });
    return sum;
}

console.log(sumjq('.price'));

IE8을 지원할 필요가 없다면 네이티브 자바 스크립트 Array.prototype.reduce()메서드를 사용할 수 있습니다 . 먼저 JQuery 객체를 배열로 변환해야합니다.

 var sum = $('.price').toArray().reduce(function(sum,element) {
     if(isNaN(sum)) sum = 0;
     return sum + Number(element.value);
 }, 0);

참조 : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce


마찬가지로 플러그인으로 작성된 다음 답변 라인을 따라 :

$.fn.sum = function () {
    var sum = 0;
    this.each(function () {
        sum += 1*($(this).val());
    });
    return sum;
};

레코드 1 * x는 Chrome의 Number (x)보다 빠릅니다.


이 기능을 사용하십시오 :

$(".price").each(function(){
total_price += parseInt($(this).val());
});

이 문제를 해결해야합니다.

var total = 0;   
$(".price").each( function(){
          total += $(this).val() * 1;
});

$(".price").each(function(){ 
total_price += parseFloat($(this).val()); 
}); 

이렇게 해봐요 ...


$('.price').blur(function () {
    var sum = 0;
    $('.price').each(function() {

        if($(this).val()!="")
         {
            sum += parseFloat($(this).val());
         }

    });
        alert(sum);
});​​​​​​​​​

JS 바이올린


이것은 100 % 작동합니다.

<script type="text/javascript">

function calculate(){
var result = document.getElementById('result');
var el, i = 0, total = 0; 
while(el = document.getElementById('v'+(i++)) ) {
el.value = el.value.replace(/\\D/,"");
total = total + Number(el.value);
}
result.value = total;
if(document.getElementById('v0').value =="" && document.getElementById('v1').value =="" && document.getElementById('v2').value =="" ){
 result.value ="";
}
}
</script>
Some number:<input type="text" id ="v0" onkeyup="calculate()"><br>
Some number:<input type="text" id ="v1" onkeyup="calculate()"><br>
Some number:<input type="text" id ="v2" onkeyup="calculate()"><br>
Result: <input type="text" id="result" onkeyup="calculate()"  readonly><br>

참고URL : https://stackoverflow.com/questions/2417553/jquery-calculate-sum-of-values-in-all-text-fields

반응형