2013-08-23 67 views
-1

我有一堆inputboxes與類「selectme數量」,並想總結在一起的數量。總和多個輸入框值

例如:

<input class="selectme quantity" value="4"> 
<input class="selectme quantity" value="1"> 
<input class="selectme quantity" value="5"> 

如何可以通過所有這些輸入的運行和顯示合計值(這將是10)?

回答

3

我建議:

function summate (selector) { 
    var sum = 0; 
    $(selector).each(function(){ 
     sum += parseFloat(this.value) || 0; 
    }); 
    return sum; 
} 

summate('.selectme.quantity'); 

JS Fiddle demo

或者,如果你有一個支持Array.reduce()瀏覽器工作:

var sum = $('.selectme.quantity').map(function(){ 
    return this.value && parseFloat(this.value); 
}).get().reduce(function(a,b){ 
    return parseFloat(a) + parseFloat(b); 
}); 

console.log(sum); 

JS Fiddle demo

參考文獻:

0

你可以做一個小的jQuery插件對於這一點,如果它是你會經常做在頁面上,需要一定的靈活性:

在這個例子中,我對待你的數量爲整數 - 也就是整數。如果您需要允許小數量(即:3.5,1.002等),您應該使用parseFloat而不是parseInt(感謝David Thomas的注意事項!)。

使用您的示例HTML:

(function($){ 
    $.fn.extend({ 
     addElementValues: function() { 
      var sum = 0; 
      this.each(function() { 
       sum += (typeof this.value != 'undefined' ? parseInt(this.value, 10) : 0); 
      }); 
      return sum; 
     } 
    }); 
})(jQuery); 

console.log($('.selectme').addElementValues()); // 10 

這裏試試:http://jsfiddle.net/GRMule/NhLBA/1/

文檔

+0

如果你打算使用'parseInt函數()'然後記得使用的基數(哪怕只是過分謹慎)。另外,使用'parseInt()'需要事先警告不要使用浮動。 –

+0

公平點,但是,用例似乎是在訂單數量的上下文中,這就是爲什麼我使用整數而不是浮點數。即便如此,如果他正在處理以可分割單位出售的產品(例如克),這可能是一個問題。我會編輯我的答案,注意這一點。 –