Я получаю ошибку Uncaught ReferenceError для переменной, которую я назначаю в функции, которая запускается при событии onblur. Говорит, что переменная не определена, если она четко определена в функции.
Сообщение об ошибке:
Неперехваченная ошибка ссылки:
labSectionsByGraduate is not defined
at calculateGTALabCost (AvailableFundsCosts.aspx:218)
at doCalculations (AvailableFundsCosts.aspx:269)
at HTMLInputElement.onblur (AvailableFundsCosts.aspx:685)
Я попытался добавить alert(labSectionsByGraduate)
, чтобы проверить, что происходит сразу после третьей переменной (GTASemesterStipend
), и это работает, когда я использую alert(GTALabCost)
, для предупреждения ничего не происходит. Полагаю, это как-то связано с моими условиями if
.
function calculateGTALabCost()
{
var labSectionsbyGraduate = parseFloat(document.getElementById("cphMain_gridPTA_iTxtAmount_0").value);
var GTAlab = parseFloat(document.getElementById("cphMain_gridTLS_iTxtAmount_1").value);
var GTASemesterStipend = parseFloat(document.getElementById("cphMain_gridTLS_iTxtAmount_5").value);
if(isNaN(labSectionsbyGraduate))
{labSectionsbyGraduate = 0.00;}
if(isNaN(GTAlab))
{GTAlab = 0.00;}
if(isNaN(GTASemesterStipend))
{GTASemesterStipend = 0.00;}
var GTALabCost = parseFloat((labSectionsByGraduate / GTAlab) * GTASemesterStipend);
alert(GTALabCost);
var cell = document.getElementById("cphMain_gridPC").rows[2].cells;
cell[1].innerHTML = GTALabCost.toLocaleString('en-US', { style: 'currency', currency: 'USD' });
}
Я ожидаю, что результат изменит ячейку моей таблицы / сетки в соответствии с расчетом, который я пытаюсь сделать.
1 ответ
В вашей строке var GTALabCost = parseFloat((labSectionsByGraduate / GTAlab) * GTASemesterStipend);
используется labSectionsByGraduate
, но вы определяете labSectionsbyGraduate
. Просто верблюжья ошибка. Ваше здоровье!
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript/JS) и его различных диалектах/реализациях (кроме ActionScript). Обратите внимание, что JavaScript — это НЕ Java. Включите все теги, относящиеся к вашему вопросу: например, [node.js], [jQuery], [JSON], [ReactJS], [angular], [ember.js], [vue.js], [typescript], [стройный] и т. д.
GTAlab
инициализировано нулем, эта операция деления дастInfinity
.parseFloat()
в результатах выражения, включающего числа; это уже поплавок.labSectionsbyGraduate
не совпадает сlabSectionsByGraduate
...