- Используйте ID во всех полях вместо класса.
- Измените функцию на функцию, которую можно вызывать при изменении или при вводе
- Вам необходим parseFloat процента в годовом доходе
- Используйте более подходящие имена переменных.
- будьте единообразны в идентификаторах, например у Annualincome есть идентификатор дохода, поэтому ваш код не работает
Я не уверен, что лог c Приведенные ниже расчеты верны, ваши алгоритмы не были супер ясными
Но код выполняется, поэтому просто перемещайте вычисления по мере необходимости
const calc = () => {
var cost = parseInt($('#cost').val());
var loading = parseInt($('#loading').val());
var income = parseFloat($('#annualincome').val());
var loading = (cost / 100 * 20);
var sum = cost + loading
$("#result").val(sum.toFixed(2));
$("#loading").val(loading.toFixed(2));
var total = cost + (loading * income);
if (isNaN(total)) total = 0;
$("#peryearresult").val(total.toFixed(2));
}
$(document).ready(function() {
$('.input').on("input", calc)
$('#income').on("input", calc)
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<span class="$prefix">$</span>
<input type="text" class="input" id="cost" placeholder="Course Cost">
<span class="$prefix">$</span>
<input type="text" class="input" id="loading" disabled="disabled" placeholder="20% Loading">
<span class="$prefix">$</span>
<input type="text" disabled="disabled" id="result" placeholder="Total VET Student Loan Amount">
<select name="annualincome" class="input" id="annualincome" placeholder="Your Annual Income">
<option value="" disabled selected hidden>Your Annual Income</option>
<option value="0">Below $45,881</option>
<option value="0.01">$45,881 - $52,973 (1%)</option>
<option value="0.02">$52,974 - $56,151 (2%)</option>
<option value="0.025">$56,152 – $59,521 (2.5%)</option>
<option value="0.03">$59,522 - $ 63,092 (3%)</option>
<option value="0.035">$63,093 - $66,877 (3.5%)</option>
<option value="0.04">$66,878 - $70,890 (4%)</option>
<option value="0.045">$70,891 - $75,144 (4.5%)</option>
<option value="0.05">$75,145 - $79,652 (5%)</option>
<option value="0.055">$79,653 - $84,432 (5.5%)</option>
<option value="0.06">$84,433 - $89,498 (6%)</option>
<option value="0.065">$89,499 - $94,868 (6.5%)</option>
<option value="0.07">$94,869 - $100,560 (7%)</option>
<option value="0.075">$100,561 - $106,593 (7.5%)</option>
<option value="0.08">$106,594 - $112,989 (8%)</option>
<option value="0.085">$112,990 - $119,769 (8.5%)</option>
<option value="0.09">$119,770 - $126,955 (9%)</option>
<option value="0.095">$126,956 - $134,572 (9.5%)</option>
<option value="0.10">$134,573 and above (10%)</option>
</select>
<br> Your after tax repayments are
<span class="$prefix">$</span>
<input type="text" disabled="disabled" id="peryearresult" placeholder="After Tax Repayment"> Per Year