2011-12-10 64 views
0

這是我的代碼:jQuery的值計算取決於下拉選項

$('#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,則2個字段出現在c_card_field內。其中之一是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?

謝謝。

+0

爲什麼不重新計算'total_inc_charges'? – lalibi

+0

我用jquery.calculation進行計算。它看起來像這樣$(function(){'input [name^= sum]')。keyup(function(){var1 = parseFloat($('input [name = sum1]')。val ))|| 0; \t \t變種SUM2 = parseFloat($( '輸入[名稱= SUM2]')VAL())|| 0; \t \t變種SUM3 = parseFloat($('輸入[名稱= SUM3 ]())')。val())|| 0; $('#total_inc_charges').val((sum1 * sum3/100)+ sum1); \t \t}); });我真的不知道如何去做這個功能...... – Peter

回答

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()只要你喜歡重新計算收費。

+0

謝謝你的幫助。然後我意識到,如果沒有信用卡收費,包括費用在內的實際總額不是amount_due。所以我這樣做:$('#total_inc_charges')。val(($('#amount_due')。val())); – Peter

+0

很高興你解決了它:) – lalibi

+0

我甚至不知道我爲什麼使用jquery.calculation ...很多工作與.val()。學習...... :) – Peter

相關問題