如何使用jquery将具有相同类的文本框的值合计并将其放入另一个文本框中

时间:2015-03-15 15:01:26

标签: javascript php jquery html

如何将包含123的所有文本框的值合计为sum_1sum_2和{{1} }}

我试过这种方式

Jquery:

sum_3

HTML here:

   $(document).on("change", ".1", function() {
    var sum = 0;
    $(".1").each(function(){
        sum += +$(this).val();
    });
    $(".total").val(sum);
});

这是小提琴http://jsfiddle.net/5gsBV/36/,适用于一个值

但是我怎么能为3个值做这个,就像我在这个小提琴中给出的问题中提到的那样http://jsfiddle.net/vL6f2tow/1/

更新:

我怎样才能得到总和的总和

3 个答案:

答案 0 :(得分:2)

如果你想在加载时这样做,你应该做这样的事情

$('.item').each(function(){
    var itemNumber = $(this).attr('class').split(" ");
    itemNumber.splice( itemNumber.indexOf("item"), 1 );
    var sumElement = $(".sum_" + itemNumber);
    var sum = (sumElement.val() == "") ? 0 : parseInt(sumElement.val());
    sum += parseInt($(this).val());
    sumElement.val(sum);
});

这是计算本地金额的demo

如果您想计算全局总和(本地总和的总和),这里是demo 2


如果您有多个这样的输入组,那么您必须为每个输入添加一个类,以便您知道需要考虑哪些输入元素来计算总和。

<input type="text" class="item 1" value="1" />
<input type="text" class="item 2" value="2" />
<input type="text" class="item 2" value="3" />
<input type="text" class="item 2" value="4" />
<input type="text" class="item 3" value="5" />
<input type="text" class="item 3" value="6" />
<input type="text" class="item 3" value="7" />
<br>
<br>
<input type="text" class="sum_1" value="" />
<input type="text" class="sum_2" value="" />
<input type="text" class="sum_3" value="" />



 $(document).on("change", ".item", function () {
    var sum = 0;
    var itemNumber = $(this).attr('class').split(" ");
    itemNumber.splice( itemNumber.indexOf("item"), 1 );
    $('.'+itemNumber).each(function () {
        sum += parseInt($(this).val());
    });
    $(".sum_" + itemNumber).val(sum);
});

在上面的脚本中,

  1. $(this).attr('class')看起来像“第1项”

  2. $(this).attr('class')。split(“”)将是一个数组[“item”,“1”]

  3. 然后我删除item一词并使用"1"

  4. 这是demo

    希望这有帮助。

答案 1 :(得分:0)

在你的第二个小提琴中,你提到$(".sum1")实际上你的班级被命名为sum_1(而不是sum1)。还需要在jsfiddle

中添加jQuery库

答案 2 :(得分:0)

正如mayanktum所说,你忘了添加jQuery。同样在最后一行中,您错误地将选择器命名为$(".sum1")而不是$(".sum_1");。之后一切正常。

$(document).on("change", ".1", function() {
    var sum = 0;
    $(".1").each(function(){
        sum += +$(this).val();
    });
    $(".sum_1").val(sum);
});