0

type input=text当我添加一个名为的元素时name="algumacoisa[number]"

每次添加额外的字段时,我都需要对这些值求和。
使用.each()显示不起作用,因为它看不到字段$('[name="algumacoisa[]"]').each()来计算那里有多少字段并将它们的值相加​​​。

任何的想法?

欢迎任何帮助。

谢谢

4

3 回答 3

1
var sum = 0;
$(':input[name^="algumacoisa"]').each(function(){
   var value = $.trim( this.value );
   if( $.isNumeric( value ) ) {
      sum += parseInt( value, 10 );
   }
});

关于$.isNumeric()

您还可以为此使用函数:

function getSum() {
    var sum = 0;
    $(':input[name^="algumacoisa"]').each(function() {
        var value = $.trim(this.value);
        if ($.isNumeric(value)) {
            sum += parseInt(value, 10);
        }
    });
    return sum;
}

演示

根据评论新的演示

于 2012-08-06T17:45:49.207 回答
1

此函数将对所有字段值求和,只要该值可以解释为数字:

function sumFields() {
    var total = 0;
    $('input[type="text"][name^="algumacoisa"]').each(function(){
        var fieldVal = parseFloat($(this).val());
        if(!isNaN(fieldVal)) {
            total += fieldVal;
        }
    }
    return total;
}

每次添加新字段时,运行sumFields()将新字段添加到 DOM 之后)这将返回您的总值

于 2012-08-06T18:09:55.110 回答
0

这样做:

var sum=0;
$('input[name^="algumacoisa["]').each(function(){
    sum += Number(this.value);            
});
alert(sum);

参考现场演示

于 2012-08-06T17:58:15.820 回答