0

テーブルでチェックしたチェックボックスに、本当に奇妙なことが起こっています。テーブルに請求書計算機を作成しました。ここで確認できます。私の目的は、入力 (Iva または Irpef) を自動的にチェックすると、合計金額で計算されないことです。リンクした例でわかるように、Irpef 入力チェックボックスをオンにするとうまく機能し、Irpef は合計金額で計算されません。問題は、入力チェックボックス IVA と同じように発生しないことです。なぜですか? コードはまったく同じです。

別々に動作させようとすると大丈夫です、両方ともうまく動作するので、連携できないように見えますか?どうしたの?この問題についてあなたの助けが必要です。

ありがとう

問題に関連するコードは次のとおりです。

function tally(selector) {
    var total = 0;
    $('p.editable_number').each(function() {
        total += parseInt($(this).text()) || 0;
        $('#subtotal').html(total);
        if($("#iva").is(':checked')){
            $('#subtotal').html((total).toFixed(2));
            $('#total').html((total*0.00).toFixed(2));
            $('#total1').html((total*0.15).toFixed(2));
            $('#total2').html((total*0.85).toFixed(2));
        }
        else {
            $('#subtotal').html((total).toFixed(2));
            $('#total').html((total*0.21).toFixed(2));
            $('#total1').html((total*0.15).toFixed(2));
            $('#total2').html((total*1.06).toFixed(2));
        }
         if($("#irpef").is(':checked')){
            $('#subtotal').html((total).toFixed(2));
            $('#total').html((total*0.21).toFixed(2));
            $('#total1').html((total*0.00).toFixed(2));
            $('#total2').html((total*1.21).toFixed(2));
        }
        else {
            $('#subtotal').html((total).toFixed(2))
            $('#total').html((total*0.21).toFixed(2));
            $('#total1').html((total*0.15).toFixed(2));
            $('#total2').html((total*1.06).toFixed(2));
        }
        })
        }

$('#irpef').change(function() {
             tally('p#subtotal');
             tally('p#total');
             }); 
$('#iva').change(function() {
             tally('p#subtotal');
             tally('p#total');
             }); 
4

1 に答える 1

1

これを試してみてください。今は大丈夫です。あなたはelse ifを実行しようとしていて、すべてを1回ではなく数回(各関数)実行しようとしていたと思います。更新 合計/小計と vat/irpf を追跡する変数を追加しました。 each()すべての p.editable_number 要素を通過するため、同じコードを数回実行し、前の結果を上書きするたびに、カウントされた終了ループであるため、正しい結果が得られます。これで、値を一度取得してから、関連する小計、vat、irpf、および合計値を計算します (vat または irpf がチェックされているかどうかの条件に基づいて)。

于 2012-10-24T07:55:08.657 に答える