type input=text
namedの要素を追加するとname="algumacoisa[number]"
。
フィールドを追加するたびに値を合計する必要があります。フィールドの数をカウントしてそれらの値を合計するフィールドが表示されないため、[appears
] を使用すると機能しません。.each()
$('[name="algumacoisa[]"]').each()
何か案が?
どんな助けでも大歓迎です。
ありがとう
この関数は、値が数値として解釈できる限り、すべてのフィールド値を合計します。
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(){
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;
}
このようにしてください:
var sum=0;
$('input[name^="algumacoisa["]').each(function(){
sum += Number(this.value);
});
alert(sum);
ライブデモを参照