반응형
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);
});
이것은 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
반응형
'program story' 카테고리의 다른 글
| Ubuntu 12.04에서 Python.h 누락 (0) | 2020.11.06 |
|---|---|
| 사용자가 Google recaptcha에서 확인란을 선택한 js를 확인하는 방법은 무엇입니까? (0) | 2020.11.06 |
| 경로의 XML 잘못된 문자 (0) | 2020.11.06 |
| 기존 모델의 변경 사항을 반영하도록 django 데이터베이스 업데이트 (0) | 2020.11.06 |
| 파일 압축 해제 (0) | 2020.11.05 |