我正在尝试建立一个脚本来计算每月贷款还款额,但条件是如果贷款期限少于4个月,则不收取利息。但在第 25 行我收到错误 Monthcredit undefined,我该如何解决这个问题?结果显示在链接#msum 和#ovsum 上。蒂尔达网站建设者。
错误代码 -
<!-- Как сделать калькулятор расчета аннуитетных платежей по кредиту в ZeroBlock в Tilda mo-ti.ru --><script src="https://static.tildacdn.com/js/jquery-1.10.2.min.js" charset="utf-8" onerror="this.loaderr='y';"></script>
<style>
a[href="#msum"] , a[href="#ovsum"] {pointer-events:none;}
</style>
<script>
$( document ).ready(function() {
//Значение процента
var percent = 10;
$(".tn-atom__form").on('input', ".t-range", function() {
setTimeout(function(){
let summa = $('input[name="summa"]').next('.t-range__value-txt').html();
let srok = $('input[name="srok"]').next('.t-range__value-txt').html();
let monthPercent = percent/100/12;
//Возведение в степень
let degree = Math.pow( 1+monthPercent , -srok);
if (srok <= 4) {
let monthCredit = summa/srok;
let overCredit =0
} else {
let monthCredit = summa*(monthPercent/(1-degree));
let overCredit = monthCredit*srok-summa
}
//Выводим итоги в текст
monthCredit = monthCredit.toFixed();
overCredit = overCredit.toFixed();
monthCredit = monthCredit.replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ');
overCredit = overCredit.replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ');
$('a[href="#msum"]').html(monthCredit+' руб.');
$('a[href="#ovsum"]').html(overCredit+' руб.');
}, 100);
});
});
</script>
我有相同的工作脚本,但它没有提供大约4个月的条件(附在下面)-
工作代码-
<!-- Как сделать калькулятор расчета аннуитетных платежей по кредиту в ZeroBlock в Tilda mo-ti.ru --><script src="https://static.tildacdn.com/js/jquery-1.10.2.min.js" charset="utf-8" onerror="this.loaderr='y';"></script>
<style>
a[href="#msum"] , a[href="#ovsum"] {pointer-events:none;}
</style>
<script>
$( document ).ready(function() {
//Значение процента
var percent = 10;
$(".tn-atom__form").on('input', ".t-range", function() {
setTimeout(function(){
let summa = $('input[name="summa"]').next('.t-range__value-txt').html();
let srok = $('input[name="srok"]').next('.t-range__value-txt').html();
let monthPercent = percent/100/12;
//Возведение в степень
let degree = Math.pow( 1+monthPercent , -srok);
let monthCredit = summa*(monthPercent/(1-degree));
let overCredit = monthCredit*srok-summa
//Выводим итоги в текст
monthCredit = monthCredit.toFixed();
overCredit = overCredit.toFixed();
monthCredit = monthCredit.replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ');
overCredit = overCredit.replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ');
$('a[href="#msum"]').html(monthCredit+' руб.');
$('a[href="#ovsum"]').html(overCredit+' руб.');
}, 100);
});
});
</script>.
monthCredit
标识符仅在任一if (srok <= 4)
逻辑分支中声明,因此它不会在函数的其余部分尝试使用/引用它的下一个更高范围中声明。
将
monthCredit
声明移出 if 分支。 overCredit
也一样。
示例:
$( document ).ready(function() {
var percent = 10;
$(".tn-atom__form").on('input', ".t-range", function() {
setTimeout(function(){
let summa = $('input[name="summa"]').next('.t-range__value-txt').html();
let srok = $('input[name="srok"]').next('.t-range__value-txt').html();
let monthPercent = percent/100/12;
//Возведение в степень
let degree = Math.pow( 1+monthPercent , -srok);
let monthCredit = 0;
let overCredit = 0;
if (srok <= 4) {
monthCredit = summa/srok;
overCredit =0
} else {
monthCredit = summa*(monthPercent/(1-degree));
overCredit = monthCredit*srok-summa
}
//Выводим итоги в текст
monthCredit = monthCredit.toFixed();
overCredit = overCredit.toFixed();
monthCredit = monthCredit.replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ');
overCredit = overCredit.replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ');
$('a[href="#msum"]').html(monthCredit+' руб.');
$('a[href="#ovsum"]').html(overCredit+' руб.');
}, 100);
});
});
</script>