这是我的代码:
$('#paying_by').click(function()
{
if ($(this).val() == "GBPTRF")
{
$('.currency').html('£ ');
$('#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('£ ');
$('.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?
谢谢。
答案 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()
。