在文本框中更改值时,通过jQuery计算每行的总和

时间:2013-10-23 02:19:26

标签: javascript jquery backbone.js

在数量文本框的键盘上,价格已更改。但是,只有刷新页面时,子总div才会更改值。

请知道如何计算每行的总和,并在jquery中更改subtotal div。

感谢。

enter image description here enter image description here

2 个答案:

答案 0 :(得分:2)

将一个类分配给您要考虑进行小计的所有文本字段,并监听这些文本字段的更改并计算更改时的小计。这是同一个http://jsfiddle.net/ravikumaranantha/Sb6zS/3/

的jsfiddle
<table>
    <tr>
        <td>Product 1</td>
        <td>
            <input class="quantity" type="text" value="10" />
            <input class="price" type="hidden" value="20" />
        </td>
        <td>$20</td>
    </tr>
    <tr>
        <td>Product 1</td>
        <td>
            <input class="quantity" type="text" value="20" />
            <input class="price" type="hidden" value="40" />
        </td>
        <td>$40</td>
    </tr>
</table>
<div class="subtotal"></div>


$('.quantity').on('change', function(){

    var subtotal = 0;
    $('.quantity').each(function(){
        var $this = $(this);
        var quantity = parseInt($this.val());
        var price = parseFloat($this.siblings('.price').val())
        subtotal+=quantity*price;
    })
    $('.subtotal').text(subtotal);

})
$('.quantity').trigger('change')

答案 1 :(得分:1)

我只是快速写一个简单的http://jsfiddle.net/player889/3PRZr/。希望这可以帮到你

$(function() {
  $('#B').bind('keyup', function() {
    $('#b').text ($('#B').val() *6) ;
}).keyup(function(){
    $("#subtotal").text( $('#A').val() *5 + $('#B').val() *6);
});

$('#A').bind('keyup', function() {
    $('#a').text ($('#A').val() *5) ;
  }).keyup(function(){
    $("#subtotal").text( $('#A').val() *5 + $('#B').val() *6);
 });
});

A : <input type="text" id="A"/> x5 
<div id="a"></div>
B : <input type="text" id="B"/> x 6
<div id="b"></div>
sum: <div id="subtotal"></div>