在模糊上得到不确定

时间:2014-01-27 03:44:46

标签: javascript jquery html

我有一个脚本,它根据输入值做一些方程式。一切正常,除非初始显示器未显示未定义,如果没有选择单选按钮。因此,如果用户只是单击其中一个输入字段,则显示(脚本中的底部表)将返回未定义的值。但是,如果我点击无线电,那么它按预期工作。如果用户没有做任何事情,只需点击输入,我需要将初始APR值设置为特定百分比。

这是很多HTML和jQuery所以我把大量放在一个小提琴中,但这里是核心脚本:

$(document).ready(function () {
var updateTotal, currentAPR;

$("body").on("blur", "#vehiclePrice,#estimatedTaxesAndFees,#downPayment,#manufacturerRebate,#tradeInValue,#amtOwedOnTrade,#extendedWarranty,#gapInsurance,#serviceContract", function () {
    updateTotal(currentAPR);
});
updateTotal = function (apr) {
    currentAPR = apr;
    $(".output2").html(apr + "<span class=\"expandedTermsText\"> APR<\/span>");

    var input1 = parseInt($('#vehiclePrice').val()) || 0;
    var input2 = parseInt($('#estimatedTaxesAndFees').val()) || 0;
    var input3 = parseInt($('#downPayment').val()) || 0;
    var input4 = parseInt($('#manufacturerRebate').val()) || 0;
    var input5 = parseInt($('#tradeInValue').val()) || 0;
    var input6 = parseInt($('#amtOwedOnTrade').val()) || 0;
    var input7 = parseInt($('#extendedWarranty').val()) || 0;
    var input8 = parseInt($('#gapInsurance').val()) || 0;
    var input9 = parseInt($('#serviceContract').val()) || 0;
    var sum = input1 + input2 - input3 - input4 - input5 + input6 + input7 + input8 + input9;
    $('.total').text('$' + sum.toFixed(0).replace(/(\d)(?=(\d{3})+\.)/g, '$1,'));
    var principle = parseInt($('#vehiclePrice').val()) || 0;
    var apr = $("input[name='status']:checked").attr("apr");
    var months = $("input[name='status']:checked").attr("months");
    var perMonth = sum * (apr / 12) / (1 - Math.pow((1 + (apr / 12)), -months)).toFixed(2);
    $('.perMonth').text('$' + perMonth.toFixed(0).replace(/(\d)(?=(\d{3})+\.)/g, '$1,'));
};
$('label.option').click(function () {
    $('.form-item input[type=radio]').attr('checked', null);
    $('label.option').removeClass("checked").addClass("unchecked");
    $(this).prev().attr('checked', "checked");
    $(this).addClass("checked").removeClass("unchecked");
});

$("input[name='status']").click(function () {
    console.log("changed");
    if ($("input[name='status']:checked").val() == '36') {
        updateTotal("4.95%");
        //$(".output2").html("4.36%" + "<span class=\"expandedTermsText\"> APR<\/span>");
    } else if ($("input[name='status']:checked").val() == '48') {
        updateTotal("5.95%");
        //$(".output2").html("4.74%" + "<span class=\"expandedTermsText\"> APR<\/span>");
    } else if ($("input[name='status']:checked").val() == '60') {
        updateTotal("6.95%");
        //$(".output2").html("4.94%" + "<span class=\"expandedTermsText\"> APR<\/span>");
    } else if ($("input[name='status']:checked").val() == '72') {
        updateTotal("7.95%");
        //$(".output2").html("5.30%" + "<span class=\"expandedTermsText\"> APR<\/span>");
    }
});
});

感谢任何帮助。

Das Fiddle

1 个答案:

答案 0 :(得分:1)

初始化currentAPR值,如下所示:

    var updateTotal, currentAPR = '5.30%';

我放了5.30%,因为这是您在页面出现时显示的默认值。可能它应该对应于默认的单选按钮选择值'7.95%'。