type input=text
当我添加一个名为的元素时name="algumacoisa[number]"
。
每次添加额外的字段时,我都需要对这些值求和。
使用.each()
显示不起作用,因为它看不到字段$('[name="algumacoisa[]"]').each()
来计算那里有多少字段并将它们的值相加。
任何的想法?
欢迎任何帮助。
谢谢
var sum = 0;
$(':input[name^="algumacoisa"]').each(function(){
var value = $.trim( this.value );
if( $.isNumeric( value ) ) {
sum += parseInt( value, 10 );
}
});
您还可以为此使用函数:
function getSum() {
var sum = 0;
$(':input[name^="algumacoisa"]').each(function() {
var value = $.trim(this.value);
if ($.isNumeric(value)) {
sum += parseInt(value, 10);
}
});
return sum;
}
此函数将对所有字段值求和,只要该值可以解释为数字:
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 之后)这将返回您的总值
这样做:
var sum=0;
$('input[name^="algumacoisa["]').each(function(){
sum += Number(this.value);
});
alert(sum);
参考现场演示