2014-01-27 24 views
-2

我有一個基於輸入值執行幾個方程式的腳本。如果沒有選擇單選按鈕,一切工作正常,除非初始顯示顯示未定義。因此,如果用戶只需點擊其中一個輸入字段,則顯示器(腳本中的底部表格)會返回一個未定義的值。但是,如果我點擊無線電,那麼它按預期工作。如果用戶不做任何事情,只需點擊輸入內容,我需要將初始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

初始化currentAPR值是這樣的:

var updateTotal, currentAPR = '5.30%'; 

我已經把5.30%自認爲是當頁面的時候,您顯示的默認值。可能它應該對應於默認的單選按鈕選擇值'7.95%'。

+0

你那個男人......謝謝。不知道爲什麼我沒有看到或我的號碼關閉。我現在會糾正它。 –