我有1个选择,2个文本输入&表格中的一些JSON数据:
JSON
supplier_tax_rates
我正在计算这样的总金额(伪代码):
grossAmount = NetAmount + ((currently_selected_supplier.tax_percentage_charged / 100) * netAmount)
这是完整的代码: Calculate total after retriveing tax rate from JSON
现在,这应该有效,但事实并非如此。我得到NaN(不是数字),意味着出错了。但我很难找到哪里。
答案 0 :(得分:2)
您的代码中存在多个问题。这是正确的版本:
var taxRates = $.parseJSON(supplier_tax_rates);
var getTaxRate = function(id) {
for (var i in taxRates) { // correct loop definition
if (taxRates[i].id == id) { // check you get id correctly
return taxRates[i].tax_percentage_charged; // instead of 'rate'
}
}
};
$('#PurchaseNetAmount').on('change', function(event) {
var taxRatesId = $('#PurchaseSupplierId').val();
var netAmount = parseFloat(this.value);
var grossAmount = netAmount + ((getTaxRate(taxRatesId) / 100) * netAmount);
$('#PurchaseGrossAmount').val(grossAmount);
});
答案 1 :(得分:0)
你的问题在于查找功能。
for(TaxRate in supplier_tax_rates ){
supplier_tax_rates
是一个字符串,而不是JSON对象
在你修复之后,你会有另一个错误
return rate;
什么是费率?
学习使用console.log()或断点,以便逐步完成代码并进行调试。
答案 2 :(得分:-2)
getTaxRate(taxRatesId)返回undefined