У меня есть скрипт, который выполняет несколько уравнений на основе входных значений. Все работает правильно, за исключением того, что начальный дисплей отображается неопределенным, если не выбраны никакие переключатели. Поэтому, если пользователь просто нажимает на одно из полей ввода, тогда дисплей (нижняя таблица в скрипте) возвращает неопределенное значение. Но если я нажму на радио, то он будет работать так, как ожидалось. Мне нужно, чтобы начальное значение APR устанавливалось на определенный процент, если пользователь ничего не делает, а просто щелкает по входам.Получение undefined on blur
это много 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>");
}
});
});
Любая помощь приветствуется.
Вы, этот человек ... Спасибо. Не знаю, почему я не видел этого или своих номеров. Я исправлю это сейчас. –