jquery值计算取决于下拉选择

时间:2011-12-10 09:51:54

标签: jquery drop-down-menu

这是我的代码:

$('#paying_by').click(function()
{       
       if ($(this).val() == "GBPTRF")
       {
          $('.currency').html('&#163 ');
          $('#c_card_rate').val("0.00");
          $('#c_card_amount').val("0.00");
          $('.total_inc_charges').val(); /*???? refresh? this is the question*/
          $('.c_card_field').hide();            
       }                

       if ($(this).val() == "GBPCCARD")
       {
          $('.currency').html('&#163 ');
          $('.c_card_field').show();    
       }    

});

默认情况下,隐藏c_card_field。如果用户点击GBPCCARD,那么c_card_field中会出现2个字段。其中一个是c_card_rate,它是%。然后总金额以amount_due * c_card_rate / 100递增。如果用户再次选择GBPTRF,则c_card_field消失。当然我清除了c_card_rate字段,但是c_card_amount(amount_due*c_card_rate/100)增加的总量仍然增加,直到我修改amoun_due字段。

问题: 当用户再次点击GBPTRF时,如何刷新total_inc_charges?

谢谢。

1 个答案:

答案 0 :(得分:1)

根据您的上次评论。我会像这样重构你的代码:

var calc_total_inc_charges = function () {
    var sum1 = parseFloat($('input[name=sum1]').val()) || 0;
    var sum2 = parseFloat($('input[name=sum2]').val()) || 0;
    var sum3 = parseFloat($('input[name=sum3]').val()) || 0;
    return (sum1*sum3/100)+sum1;
};

$(function() {
    $('input[name^=sum]').keyup(function() {
        $('#total_inc_charges').val(calc_total_inc_charges());
    });
});

现在,只要您想重新计算费用,就可以致电calc_total_inc_charges()