如何让jQuery自动计算并显示一些表单值的总和?

时间:2011-07-08 19:30:35

标签: jquery drop-down-menu

(我对jQuery很新。)

我有一个传统的HTML表单,有3个下拉选项(每个选项都有不同的值,我想总计。)截至目前,我正在使用一个jQuery代码(下面)乘以“ os0,os1,os2“然后在”result“css块中显示totalCost就好了,但它需要用户点击”Calculate Total“按钮。

$(document).ready(function() {
    $('#calculateTotal').click(function() {
    var unitPrice = 2, paperTypes = 2, printedSides = 2;
    var inputNum_of_Shirts = $('#os0').val();
    var inputNum_of_FColor = $('#os1').val();
    var inputNum_of_BColor = $('#os2').val();
    var totalCost = (inputNum_of_Shirts*parseFloat(unitPrice))
        *(parseFloat(paperTypes)*inputNum_of_FColor)
        *(parseFloat(printedSides)* inputNum_of_BColor );
    var perShirtCost = (parseFloat(unitPrice))
        *(parseFloat(paperTypes)*inputNum_of_FColor)
        *(parseFloat(printedSides)*inputNum_of_BColor);

    $('#total').html(formatCurrency(totalCost));
    $('#perShirt').html(formatCurrency(perShirtCost));
    $('#result').css('display', 'block');
    document.getElementById("finalpaypal").value = totalCost;
});
});

有没有办法让jQuery自动更新此总数?没有“计算总计”按钮? 任何形式的帮助都将不胜感激。

谢谢, 亚伦

2 个答案:

答案 0 :(得分:1)

由于您已经进行了计算,将逻辑移动到单独的函数中,然后将其绑定到每个选择的on change事件:

试试这个:

function calculateTotal(){
   var unitPrice = 2, paperTypes = 2, printedSides = 2;
    var inputNum_of_Shirts = $('#os0').val();
    var inputNum_of_FColor = $('#os1').val();
    var inputNum_of_BColor = $('#os2').val();
    var totalCost = (inputNum_of_Shirts*parseFloat(unitPrice))
        *(parseFloat(paperTypes)*inputNum_of_FColor)
        *(parseFloat(printedSides)* inputNum_of_BColor );
    var perShirtCost = (parseFloat(unitPrice))
        *(parseFloat(paperTypes)*inputNum_of_FColor)
        *(parseFloat(printedSides)*inputNum_of_BColor);

    $('#total').html(formatCurrency(totalCost));
    $('#perShirt').html(formatCurrency(perShirtCost));
    $('#result').css('display', 'block');
    document.getElementById("finalpaypal").value = totalCost;
}

   $(function(){
     $('#os0, #os1, #os2').change(calculateTotal);
   }); 

答案 1 :(得分:0)

我建议在3个下拉列表中附加一个jquery事件监听器,以便在更改其中任何一个时,重新计算总值。你可以选择等到所有三个都有价值观,或者只是'随着人们去'。