0

最後に合計価格を計算する複数のドロップダウンリストがありますが、いくつかの問題を除けばうまく機能します。

まず、さらに価格を追加したいので、次のように読みます。

合計:£20.97

付加価値税:£4.19

合計金額:£25.16

これは簡単だと思いますが、どうしたらいいのかわかりません。

第二に-それは単一の選択ドロップダウンリストでのみ機能します、私が1つのリストで複数のオプションを選択したい場合、それは1つだけを計算します

価格の計算に使用するコードは次のとおりです。

$(function(){
    $(".calculate").on("change", function(){
        var total = 0;
        $('.calculate').each(function() {
            if($(this).val() != 0) {
                total += parseFloat($(this).val());
            }
        });
        $('#total').text('£' + total.toFixed(2));
    });

});//]]>

第三に、約8つのドロップダウンリストがありますが、最後のリストに追加するのではなく合計価格を割引したいのですが、上記のコードは各選択のオプション値から価格を取得し、割引額も取得します(データベース、それは10%として書かれています。

したがって、基本的に、7つのリストの後、合計で£20.97になるはずです。最後のリストを選択すると、価格が割引額、つまり(-10%)£18.87に置き換えられます。

私はこれを終えるのにとても近いですが、私は最後のハードルを乗り越えることができません。

ありがとう

4

2 に答える 2

0

JavascriptはデータベースからDDLから値を取得していますか、それともフォームにハードコードされていますか?

%の計算は20.97*0.10です。10%はハードコーディングされているため、これは最終的なドロップダウンリストで機能するはずです。

また、フォームに値を追加し、パーセンテージを計算する以外に、問題がどこにあるのかわかりません。おそらく、さらにいくつかの情報が価値があるでしょう...

于 2012-05-16T18:31:34.080 に答える
0

SELECT で複数選択が許可されている場合、jQuery val() 関数は値の配列を返します。したがって、コードは val() が配列を返すかどうかを検出し、そうであれば配列をループしてそれらすべての項目を追加する必要があります。1 つの方法を次に示します。

$('.calculate').each(function() {
    var currentValue = $(this).val();
    if (currentValue.length != undefined) {
        for (var i = 0; i < currentValue.length; i++) {
            if (currentValue[i] != 0) {
                total += parseFloat(currentValue[i]);
            }
        }
    }
    else if(currentValue != 0) {
        total += parseFloat(currentValue);
    }
});

これにより、複数の選択オプションが処理されます。割引については、最終的な SELECT の値を取得し、割引を適用するだけです。

var discount = parseFloat($('.discount').val()) / 100;
total = total - (total * discount);
于 2012-05-16T20:15:31.720 に答える