0

このスクリプトを使用して、クラスに基づいて入力フィールドを合計し、結果を指定されたIDに返します。

私が苦労している2人の機能主義者がいますが、これは完璧に機能します。

.replace(',',''));1つのコンマ、つまり1,000にしか対応できませんが、複数の1,000,000には対応できません。

返された結果で、3番目の数値ごとにコンマを戻したいのですが、.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");何もしませんか?

$(document).ready(function () {
    $(this).keyup(function () {
        var sum = 0;
        var column2 = $('.left')
        jQuery.each(column2, function (number) {
            sum += parseFloat($(this).val().replace(',', ''));
        });
        $('#total').val(sum).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
    });
});

私はゴーグルして答えを見つけようとしましたが、うまくいくものが見つかりません。

どうもありがとう、

サム

4

4 に答える 4

2

次のコードを使用してこれを行うことができます

$(document).ready(function(){
  $('#sumup').on('click',function(){ 
    var sum = 0;
    var column2 = $('.sum')
    jQuery.each(column2,function(number){
      sum += parseFloat($(this).val().replace(/\,/g,'') || 0);
      });
    $('#total').text(sum.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,"));
  });
});​

ワーキングフィドル

于 2012-05-30T13:14:56.333 に答える
1

gすべての置換に(グローバル)修飾子を使用する

sum += parseFloat($(this).val().replace(/,/g,''));

例えば

var x = '1,000,000';

x.replace(/,/g,''); // output: 1000000

3桁ごとにコンマを入れるには、replace内でこれを試してください

/\B(?=(\d{3})+(?!\d))/g, ','

すなわち

$('#total').val(sum.toString.replace(/\B(?=(\d{3})+(?!\d))/, "$1,");
于 2012-05-30T13:10:08.947 に答える
1

最初にコンマを削除するにはどうでしょうか。

sum += parseFloat($(this).val().replace(/,/g, ''));

次に、合計が得られたら:

$('#total').val(sum.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ','));
于 2012-05-30T13:11:15.987 に答える
0

私はJoyのソリューションが好きでしたが、SUMボタンの必要性をなくすためにいくつかの変更を追加しました。むしろ、ユーザーがフォームのコンポーネントフィールドを離れるときに再計算されます。これは、エンドユーザーにとってよりインタラクティブで便利です。

$(document).ready(function(){
  $('#sumup1,#sumup2,#sumup3,#sumup4,#sumup5,#sumup6').on('change',function(){ 
    var sum = 0;
    var column2 = $('.sum')
    jQuery.each(column2,function(number){
      sum += parseFloat($(this).val().replace(/\,/g,'') || 0);
      });
    $('#total').text(sum.toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,"));
  });   
}); 

HTMLは次のとおりです。

<table>
<tr>
<td><input type="text" id="sumup1" class="sum" value="1,000,000"></td>
</tr>
<tr>
<td><input type="text" id="sumup2" class="sum" value="1,000,000"></td>
...
</table>

<div id="total">6,000,000</div>
于 2014-03-16T10:00:47.183 に答える