2

私はこのスクリプトを持っています:

$(window).load(function(){

    $('.math1').on('change', function(e) {
        updateSubtotal();
        updateDifferences();
    });

    function updateSubtotal() {
        var subtotal = 0;
        var start = 32;
        $('.math1').each(function(i, el) {
            subtotal += parseFloat($(this).find('option:selected').data('price')*start);
        });
        $('#price').text(subtotal);
    };

    function updateDifferences() {
        $('.math1').each(function(i,sel) {
            var $sel = $(sel);
            $sel.find('option').each(function(j,opt) {
                var $opt = $(opt),
                    optprice = $opt.data('price'),
                    selprice = $sel.find('option:selected').data('price'),
                    diff = optprice * selprice,
                    diffamount = Math.abs(diff) || "";
                $opt.find('.diffaddsubtr').text(diffaddsubtr).end()
            });
        });
    };

});

1 つの選択ボックスだけで作業するとすぐにうまくいきますが、複数の選択ボックスを使用するとすぐにすべての値が合計されます。

6 人部屋の場合、料金は 192 ドルですが、160 ドルになります。

ここに私の問題があります: http://development.sakesalverda.nl/Hotel/reserveren/ (価格は更新されますが正しくありません)

4

1 に答える 1

0

あなたはこれを試すことができます:

            subtotal += parseFloat( $('.math1').val() ) * start;

それ以外の

 $('.math1').each(function(i, el) {
        subtotal += parseFloat($(this).find('option:selected').data('price')*start);
    });

$('.math1').val() ==> 選択した値を返します..

于 2014-05-08T13:43:34.827 に答える