Camper Finance Calculator

Camper Finance Calculator: Estimate Your RV Loan Payments :root { –primary-color: #004a99; –success-color: #28a745; –background-color: #f8f9fa; –text-color: #333; –border-color: #ddd; –card-background: #fff; –shadow: 0 2px 5px rgba(0,0,0,0.1); } body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background-color: var(–background-color); color: var(–text-color); line-height: 1.6; margin: 0; padding: 0; } .container { max-width: 1000px; margin: 20px auto; padding: 20px; background-color: var(–card-background); border-radius: 8px; box-shadow: var(–shadow); } h1, h2, h3 { color: var(–primary-color); text-align: center; margin-bottom: 1.5em; } h1 { font-size: 2.5em; } h2 { font-size: 2em; border-bottom: 2px solid var(–primary-color); padding-bottom: 0.5em; } h3 { font-size: 1.5em; margin-top: 1.5em; } .loan-calc-container { background-color: var(–card-background); padding: 30px; border-radius: 8px; box-shadow: var(–shadow); margin-bottom: 30px; } .input-group { margin-bottom: 20px; text-align: left; } .input-group label { display: block; margin-bottom: 8px; font-weight: bold; color: var(–primary-color); } .input-group input[type="number"], .input-group input[type="range"], .input-group select { width: calc(100% – 22px); padding: 12px; border: 1px solid var(–border-color); border-radius: 5px; font-size: 1em; margin-top: 5px; box-sizing: border-box; } .input-group input[type="range"] { width: 100%; cursor: pointer; } .input-group .helper-text { font-size: 0.85em; color: #666; margin-top: 5px; display: block; } .error-message { color: #dc3545; font-size: 0.9em; margin-top: 5px; display: none; /* Hidden by default */ } .error-message.visible { display: block; } .button-group { display: flex; justify-content: space-between; margin-top: 30px; gap: 10px; } button { padding: 12px 25px; border: none; border-radius: 5px; font-size: 1em; font-weight: bold; cursor: pointer; transition: background-color 0.3s ease; } .btn-primary { background-color: var(–primary-color); color: white; } .btn-primary:hover { background-color: #003366; } .btn-secondary { background-color: #6c757d; color: white; } .btn-secondary:hover { background-color: #5a6268; } .btn-reset { background-color: #ffc107; color: #212529; } .btn-reset:hover { background-color: #e0a800; } .results-container { margin-top: 30px; padding: 25px; background-color: var(–primary-color); color: white; border-radius: 8px; text-align: center; box-shadow: inset 0 0 10px rgba(0,0,0,0.2); } .results-container h3 { color: white; margin-bottom: 15px; } .main-result { font-size: 2.8em; font-weight: bold; margin-bottom: 10px; display: block; } .intermediate-results div { margin-bottom: 8px; font-size: 1.1em; } .intermediate-results span { font-weight: bold; } .formula-explanation { font-size: 0.9em; margin-top: 15px; opacity: 0.8; } .chart-container { margin-top: 30px; padding: 25px; background-color: var(–card-background); border-radius: 8px; box-shadow: var(–shadow); text-align: center; } .chart-container h3 { margin-bottom: 20px; } canvas { max-width: 100%; height: auto; } .table-container { margin-top: 30px; padding: 25px; background-color: var(–card-background); border-radius: 8px; box-shadow: var(–shadow); overflow-x: auto; } .table-container h3 { margin-bottom: 20px; } table { width: 100%; border-collapse: collapse; margin-top: 15px; } th, td { padding: 12px 15px; text-align: left; border-bottom: 1px solid var(–border-color); } th { background-color: var(–primary-color); color: white; font-weight: bold; } td { background-color: var(–card-background); } tr:nth-child(even) td { background-color: #f2f2f2; } .article-content { margin-top: 40px; background-color: var(–card-background); padding: 30px; border-radius: 8px; box-shadow: var(–shadow); } .article-content p, .article-content ul, .article-content ol { margin-bottom: 1.5em; } .article-content li { margin-bottom: 0.8em; } .article-content a { color: var(–primary-color); text-decoration: none; } .article-content a:hover { text-decoration: underline; } .faq-item { margin-bottom: 1.5em; border-left: 3px solid var(–primary-color); padding-left: 15px; } .faq-item strong { display: block; color: var(–primary-color); margin-bottom: 5px; } .related-links ul { list-style: none; padding: 0; } .related-links li { margin-bottom: 10px; } .related-links a { font-weight: bold; } .related-links span { font-size: 0.9em; color: #666; display: block; margin-top: 3px; } .highlight { background-color: var(–success-color); color: white; padding: 2px 5px; border-radius: 3px; font-weight: bold; } .loan-calc-container input:focus, .loan-calc-container select:focus { outline: none; border-color: var(–primary-color); box-shadow: 0 0 0 2px rgba(0, 74, 153, 0.2); } @media (max-width: 768px) { .container { margin: 10px; padding: 15px; } h1 { font-size: 2em; } h2 { font-size: 1.7em; } .button-group { flex-direction: column; } .results-container, .chart-container, .table-container { padding: 20px; } .main-result { font-size: 2.2em; } }

Camper Finance Calculator

Estimate your monthly camper loan payments and understand the total cost of financing your dream RV.

Camper Loan Details

Enter the total price of the camper.
Amount you're paying upfront.
Duration of the loan in years (e.g., 15 years).
The yearly interest rate for the loan (e.g., 6.5%).

Your Estimated Camper Loan Payments

$0.00
Total Interest Paid: $0.00
Total Cost of Loan: $0.00
Loan Amount: $0.00
Monthly Payment is calculated using the standard loan amortization formula.

Loan Amortization Over Time

Chart showing principal and interest paid over the loan term.

Loan Amortization Schedule (First 12 Months)

Month Payment Principal Interest Balance
Detailed breakdown of your loan payments.

What is a Camper Finance Calculator?

A camper finance calculator is an essential online tool designed to help prospective RV owners estimate the potential monthly payments, total interest, and overall cost associated with financing a camper or recreational vehicle (RV). It simplifies the complex process of understanding loan terms by allowing users to input key variables such as the camper's price, down payment, loan duration, and annual interest rate. By providing instant, clear results, this calculator empowers individuals to budget effectively, compare loan offers, and make informed decisions before committing to a significant purchase like a camper. It's particularly useful for first-time RV buyers or those looking to upgrade, as it demystifies the financial aspects of RV ownership.

Who should use it? Anyone planning to purchase a camper or RV using a loan should utilize a camper finance calculator. This includes families looking for vacation homes on wheels, retirees planning extended travel, or individuals seeking a flexible way to explore the outdoors. It's also beneficial for comparing different financing scenarios or understanding the impact of varying interest rates and loan terms on affordability. Even if you have a general idea of your budget, the calculator provides precise figures that can significantly influence your purchasing decisions.

Common misconceptions about camper financing include believing that all RV loans are the same, underestimating the total cost of interest over a long loan term, or assuming that only new campers can be financed. Many people also overlook the importance of factors like loan origination fees, insurance costs, and potential maintenance expenses, which are not directly calculated but are crucial parts of overall RV ownership. This calculator helps focus on the core loan repayment, providing a solid foundation for further financial planning.

Camper Finance Calculator Formula and Mathematical Explanation

The core of the camper finance calculator relies on the standard formula for calculating the monthly payment (M) of an amortizing loan. This formula ensures that over the life of the loan, the borrower pays back the principal amount borrowed plus the accumulated interest.

The formula is:

M = P [ i(1 + i)^n ] / [ (1 + i)^n – 1]

Where:

  • M = Monthly Payment
  • P = Principal Loan Amount (Camper Price – Down Payment)
  • i = Monthly Interest Rate (Annual Interest Rate / 12 / 100)
  • n = Total Number of Payments (Loan Term in Years * 12)

Variable Explanations:

Variable Meaning Unit Typical Range
P (Principal) The amount of money borrowed after the down payment. Currency ($) $10,000 – $200,000+
Annual Interest Rate The yearly cost of borrowing money, expressed as a percentage. % 3% – 15%+ (Varies by creditworthiness and market conditions)
i (Monthly Interest Rate) The interest rate applied each month. Decimal (e.g., 0.05417 for 6.5% annual) 0.0025 – 0.0125+
Loan Term (Years) The total duration of the loan. Years 5 – 20 years (Common for RVs)
n (Total Payments) The total number of monthly payments over the loan's life. Number 60 – 240 payments
M (Monthly Payment) The fixed amount paid each month towards the loan. Currency ($) Calculated value

Once the monthly payment (M) is calculated, the total interest paid is found by subtracting the principal loan amount (P) from the total amount paid over the loan term (M * n). The total cost of the loan is simply the sum of the principal and the total interest.

Practical Examples (Real-World Use Cases)

Let's explore a couple of scenarios to see how the camper finance calculator works in practice:

  1. Scenario 1: Mid-Size Travel Trailer Purchase

    Sarah is looking at a travel trailer priced at $60,000. She plans to make a down payment of $12,000. She's pre-approved for a loan with an annual interest rate of 7.0% and wants to finance it over 15 years (180 months).

    Inputs:

    • Camper Price: $60,000
    • Down Payment: $12,000
    • Loan Term: 15 years
    • Interest Rate: 7.0%

    Calculated Results:

    • Loan Amount: $48,000
    • Estimated Monthly Payment: ~$429.55
    • Total Interest Paid: ~$29,218.00
    • Total Cost of Loan: ~$77,218.00

    Financial Interpretation: Sarah will be paying approximately $429.55 per month for 15 years. Over the life of the loan, she'll pay nearly $29,218 in interest, meaning the total cost of the camper, including financing, will be around $77,218. This helps her assess if the monthly payment fits her budget and if the total cost aligns with her financial goals.

  2. Scenario 2: Luxury Fifth-Wheel Financing

    Mark is interested in a high-end fifth-wheel camper costing $150,000. He has a substantial down payment of $30,000. The best loan offer he received is at 5.5% annual interest over a 20-year term (240 months).

    Inputs:

    • Camper Price: $150,000
    • Down Payment: $30,000
    • Loan Term: 20 years
    • Interest Rate: 5.5%

    Calculated Results:

    • Loan Amount: $120,000
    • Estimated Monthly Payment: ~$771.04
    • Total Interest Paid: ~$65,041.60
    • Total Cost of Loan: ~$185,041.60

    Financial Interpretation: Mark's monthly payments would be around $771.04 for 20 years. While the lower interest rate and longer term keep the monthly payment manageable for a large loan, the total interest paid over two decades is significant, exceeding $65,000. This highlights the trade-off between lower monthly payments and higher overall interest costs in long-term financing. He might consider a shorter term if possible to reduce the total interest paid.

How to Use This Camper Finance Calculator

Using this camper finance calculator is straightforward and designed for ease of use:

  1. Enter Camper Price: Input the total purchase price of the camper or RV you intend to buy.
  2. Specify Down Payment: Enter the amount of money you plan to pay upfront. This reduces the principal loan amount and can lower your monthly payments and total interest.
  3. Select Loan Term: Choose the duration of the loan in years. Longer terms generally mean lower monthly payments but higher total interest paid. Shorter terms mean higher monthly payments but less interest over time.
  4. Input Annual Interest Rate: Enter the annual interest rate offered by your lender. This is a crucial factor affecting your payment amount. Ensure you use the rate you've been quoted or have researched.
  5. Click 'Calculate Payments': Once all fields are filled, click the button. The calculator will instantly display your estimated monthly payment, the total interest you'll pay over the loan's life, the total amount repaid, and the initial loan amount.

How to read results:

  • Monthly Payment: This is the amount you'll need to budget for each month.
  • Loan Amount: The actual amount you are borrowing after your down payment.
  • Total Interest Paid: The total cost of borrowing the money over the entire loan term.
  • Total Cost of Loan: The sum of the loan amount and the total interest paid.

Decision-making guidance: Use these results to compare different camper models, loan offers, or financing terms. If the monthly payment is too high, consider a less expensive camper, increasing your down payment, extending the loan term (while being mindful of total interest), or seeking a lower interest rate. If the total interest paid seems excessive, explore options for a larger down payment or a shorter loan term.

Key Factors That Affect Camper Finance Results

Several factors significantly influence the outcome of your camper financing calculations:

  1. Interest Rate: This is arguably the most impactful factor. A higher annual interest rate directly increases your monthly payment and the total interest paid over the loan's life. Even a small difference (e.g., 1%) can amount to thousands of dollars over a 15 or 20-year loan term. Lenders determine rates based on your credit score, the loan term, and market conditions.
  2. Loan Term (Duration): A longer loan term (e.g., 20 years vs. 10 years) will result in lower monthly payments, making the camper seem more affordable on a month-to-month basis. However, this comes at the cost of significantly higher total interest paid because the principal is paid down more slowly.
  3. Down Payment Amount: A larger down payment reduces the principal loan amount (P). This directly lowers the monthly payment (M) and substantially decreases the total interest paid over the loan's duration. It also often helps secure a better interest rate.
  4. Camper Price: Naturally, a more expensive camper will require a larger loan amount (assuming a fixed down payment), leading to higher monthly payments and greater total interest costs. This is the starting point for all calculations.
  5. Loan Fees and Add-ons: While not always included in basic calculators, origination fees, documentation fees, extended warranties, or GAP insurance can increase the overall cost of financing. These should be factored into your total budget.
  6. Credit Score: Your creditworthiness heavily influences the interest rate you'll be offered. A higher credit score typically qualifies you for lower interest rates, significantly reducing your borrowing costs compared to someone with a lower score seeking the same loan.
  7. Market Conditions & Inflation: Broader economic factors can influence interest rates offered by lenders. High inflation might lead lenders to charge higher rates to protect their returns. Conversely, economic downturns might see rates decrease.
  8. Taxes and Insurance: While not part of the loan payment itself, property taxes on the RV (in some states) and mandatory comprehensive insurance add to the overall cost of ownership. These should be considered alongside your loan payment for a true budget.

Frequently Asked Questions (FAQ)

Q1: How accurate is the camper finance calculator?

A: This calculator provides an excellent estimate based on the standard loan amortization formula. However, actual loan payments may vary slightly due to lender-specific calculation methods, rounding differences, or additional fees not included in the basic inputs.

Q2: Can I finance a used camper?

A: Yes, you can typically finance used campers, although the interest rates might be slightly higher than for new ones. Loan terms may also be shorter for older RVs.

Q3: What is considered a "good" interest rate for an RV loan?

A: A "good" interest rate depends on market conditions, your credit score, and the loan term. Generally, rates below 7-8% are considered favorable, but this can fluctuate. Always compare offers from multiple lenders.

Q4: How does a longer loan term affect my payments?

A: A longer loan term reduces your monthly payment but increases the total interest paid over the life of the loan. It makes the camper more affordable month-to-month but more expensive overall.

Q5: Should I pay off my camper loan early?

A: If your loan has no prepayment penalties, paying it off early can save you a significant amount on interest. Check your loan agreement for any such clauses.

Q6: What happens if I miss a camper loan payment?

A: Missing payments can result in late fees, damage to your credit score, and potentially repossession of the camper. It's crucial to make payments on time or contact your lender immediately if you anticipate difficulty.

Q7: Does the calculator include taxes and registration fees?

A: No, this calculator focuses solely on the loan principal, interest rate, and term to estimate loan payments. Taxes, registration, insurance, and other ownership costs are separate and should be budgeted for additionally.

Q8: How can I get the best interest rate for my camper loan?

A: Improve your credit score, save for a larger down payment, shop around with multiple lenders (banks, credit unions, RV dealerships), and consider shorter loan terms if feasible.

Related Tools and Internal Resources

© 2023 Your RV Finance Experts. All rights reserved.

var camperPriceInput = document.getElementById('camperPrice'); var downPaymentInput = document.getElementById('downPayment'); var loanTermInput = document.getElementById('loanTerm'); var interestRateInput = document.getElementById('interestRate'); var monthlyPaymentOutput = document.getElementById('monthlyPayment'); var totalInterestOutput = document.getElementById('totalInterest'); var totalCostOutput = document.getElementById('totalCost'); var loanAmountResultOutput = document.getElementById('loanAmountResult'); var resultsSection = document.getElementById('resultsSection'); var amortizationTableBody = document.querySelector('#amortizationTable tbody'); var chart; var chartContext = document.getElementById('amortizationChart').getContext('2d'); function formatCurrency(amount) { return "$" + amount.toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,'); } function formatPercent(amount) { return amount.toFixed(2) + "%"; } function validateInput(inputElement, errorElement, min, max, name) { var value = parseFloat(inputElement.value); var errorDiv = document.getElementById(errorElement); errorDiv.innerText = "; errorDiv.classList.remove('visible'); if (isNaN(value)) { errorDiv.innerText = name + ' must be a number.'; errorDiv.classList.add('visible'); return false; } if (min !== null && value max) { errorDiv.innerText = name + ' cannot be more than ' + formatCurrency(max) + '.'; errorDiv.classList.add('visible'); return false; } return true; } function validatePercentage(inputElement, errorElement, min, max, name) { var value = parseFloat(inputElement.value); var errorDiv = document.getElementById(errorElement); errorDiv.innerText = "; errorDiv.classList.remove('visible'); if (isNaN(value)) { errorDiv.innerText = name + ' must be a number.'; errorDiv.classList.add('visible'); return false; } if (min !== null && value max) { errorDiv.innerText = name + ' cannot be more than ' + max + '%.'; errorDiv.classList.add('visible'); return false; } return true; } function validateTerm(inputElement, errorElement, min, max, name) { var value = parseInt(inputElement.value); var errorDiv = document.getElementById(errorElement); errorDiv.innerText = "; errorDiv.classList.remove('visible'); if (isNaN(value)) { errorDiv.innerText = name + ' must be a whole number.'; errorDiv.classList.add('visible'); return false; } if (min !== null && value max) { errorDiv.innerText = name + ' cannot be more than ' + max + ' years.'; errorDiv.classList.add('visible'); return false; } return true; } function calculateLoan() { var camperPrice = parseFloat(camperPriceInput.value); var downPayment = parseFloat(downPaymentInput.value); var loanTermYears = parseInt(loanTermInput.value); var annualInterestRate = parseFloat(interestRateInput.value); var isValid = true; if (!validateInput(camperPriceInput, 'camperPriceError', 1, null, 'Camper Price')) isValid = false; if (!validateInput(downPaymentInput, 'downPaymentError', 0, camperPrice, 'Down Payment')) isValid = false; if (!validateTerm(loanTermInput, 'loanTermError', 1, 30, 'Loan Term')) isValid = false; if (!validatePercentage(interestRateInput, 'interestRateError', 0.1, 25, 'Annual Interest Rate')) isValid = false; if (!isValid) { resultsSection.style.display = 'none'; return; } var loanAmount = camperPrice – downPayment; var monthlyInterestRate = annualInterestRate / 100 / 12; var numberOfPayments = loanTermYears * 12; var monthlyPayment = 0; if (monthlyInterestRate > 0) { monthlyPayment = loanAmount * (monthlyInterestRate * Math.pow(1 + monthlyInterestRate, numberOfPayments)) / (Math.pow(1 + monthlyInterestRate, numberOfPayments) – 1); } else { monthlyPayment = loanAmount / numberOfPayments; } var totalInterest = (monthlyPayment * numberOfPayments) – loanAmount; var totalCost = loanAmount + totalInterest; monthlyPaymentOutput.innerText = formatCurrency(monthlyPayment); totalInterestOutput.innerText = formatCurrency(totalInterest); totalCostOutput.innerText = formatCurrency(totalCost); loanAmountResultOutput.innerText = formatCurrency(loanAmount); resultsSection.style.display = 'block'; updateAmortizationTable(loanAmount, monthlyInterestRate, numberOfPayments, monthlyPayment); updateChart(loanAmount, monthlyInterestRate, numberOfPayments, monthlyPayment); } function updateAmortizationTable(loanAmount, monthlyInterestRate, numberOfPayments, monthlyPayment) { amortizationTableBody.innerHTML = "; // Clear previous rows var balance = loanAmount; var principalPaidTotal = 0; var interestPaidTotal = 0; for (var i = 0; i < Math.min(numberOfPayments, 12); i++) { // Show first 12 months var interestPayment = balance * monthlyInterestRate; var principalPayment = monthlyPayment – interestPayment; balance -= principalPayment; if (balance < 0) balance = 0; // Ensure balance doesn't go negative principalPaidTotal += principalPayment; interestPaidTotal += interestPayment; var row = amortizationTableBody.insertRow(); row.insertCell(0).innerText = (i + 1); row.insertCell(1).innerText = formatCurrency(monthlyPayment); row.insertCell(2).innerText = formatCurrency(principalPayment); row.insertCell(3).innerText = formatCurrency(interestPayment); row.insertCell(4).innerText = formatCurrency(balance); } } function updateChart(loanAmount, monthlyInterestRate, numberOfPayments, monthlyPayment) { if (chart) { chart.destroy(); } var labels = []; var principalData = []; var interestData = []; var balance = loanAmount; for (var i = 0; i < Math.min(numberOfPayments, 360); i++) { // Limit chart to 30 years for performance labels.push('Month ' + (i + 1)); var interestPayment = balance * monthlyInterestRate; var principalPayment = monthlyPayment – interestPayment; balance -= principalPayment; if (balance 0) break; // Stop if loan is paid off } chart = new Chart(chartContext, { type: 'bar', // Changed to bar for better visualization of monthly breakdown data: { labels: labels, datasets: [{ label: 'Principal Paid', data: principalData, backgroundColor: 'rgba(0, 74, 153, 0.7)', // Primary color variation borderColor: 'rgba(0, 74, 153, 1)', borderWidth: 1 }, { label: 'Interest Paid', data: interestData, backgroundColor: 'rgba(40, 167, 69, 0.7)', // Success color variation borderColor: 'rgba(40, 167, 69, 1)', borderWidth: 1 }] }, options: { responsive: true, maintainAspectRatio: false, scales: { x: { stacked: true, title: { display: true, text: 'Loan Term (Months)' } }, y: { stacked: true, title: { display: true, text: 'Payment Amount ($)' }, beginAtZero: true } }, plugins: { tooltip: { mode: 'index', intersect: false }, legend: { position: 'top', } } } }); } function resetCalculator() { camperPriceInput.value = 50000; downPaymentInput.value = 10000; loanTermInput.value = 15; interestRateInput.value = 6.5; // Clear errors document.getElementById('camperPriceError').innerText = "; document.getElementById('camperPriceError').classList.remove('visible'); document.getElementById('downPaymentError').innerText = "; document.getElementById('downPaymentError').classList.remove('visible'); document.getElementById('loanTermError').innerText = "; document.getElementById('loanTermError').classList.remove('visible'); document.getElementById('interestRateError').innerText = "; document.getElementById('interestRateError').classList.remove('visible'); resultsSection.style.display = 'none'; if (chart) { chart.destroy(); chart = null; // Ensure chart is reset } amortizationTableBody.innerHTML = "; // Clear table } function copyResults() { var monthlyPayment = monthlyPaymentOutput.innerText; var totalInterest = totalInterestOutput.innerText; var totalCost = totalCostOutput.innerText; var loanAmount = loanAmountResultOutput.innerText; var camperPrice = formatCurrency(parseFloat(camperPriceInput.value)); var downPayment = formatCurrency(parseFloat(downPaymentInput.value)); var loanTerm = loanTermInput.value + ' years'; var interestRate = formatPercent(parseFloat(interestRateInput.value)); var textToCopy = "— Camper Loan Payment Estimate —\n\n"; textToCopy += "Key Assumptions:\n"; textToCopy += "- Camper Price: " + camperPrice + "\n"; textToCopy += "- Down Payment: " + downPayment + "\n"; textToCopy += "- Loan Term: " + loanTerm + "\n"; textToCopy += "- Annual Interest Rate: " + interestRate + "\n\n"; textToCopy += "Estimated Results:\n"; textToCopy += "- Loan Amount: " + loanAmount + "\n"; textToCopy += "- Monthly Payment: " + monthlyPayment + "\n"; textToCopy += "- Total Interest Paid: " + totalInterest + "\n"; textToCopy += "- Total Cost of Loan: " + totalCost + "\n"; navigator.clipboard.writeText(textToCopy).then(function() { alert('Results copied to clipboard!'); }).catch(function(err) { console.error('Failed to copy results: ', err); alert('Failed to copy results. Please copy manually.'); }); } // Initial calculation on page load document.addEventListener('DOMContentLoaded', function() { calculateLoan(); // Ensure chart canvas is properly sized if needed, though CSS handles most of it var canvas = document.getElementById('amortizationChart'); canvas.style.height = '400px'; // Example fixed height for chart }); // Re-calculate on input change var inputs = document.querySelectorAll('.loan-calc-container input'); inputs.forEach(function(input) { input.addEventListener('input', calculateLoan); }); // Also listen for changes on select if any were added var selects = document.querySelectorAll('.loan-calc-container select'); selects.forEach(function(select) { select.addEventListener('change', calculateLoan); });

Leave a Comment