我在计算每件产品的总价和税时面临一个小问题。 我也做了一个小提琴:http://jsfiddle.net/wk4dpfLt/1/
这是我实际代码的简化代码:
<table>
<tr>
<td>Product</td>
<td>Prijs</td>
<td>BTW</td>
</tr>
<tr>
<td><input type='text' value='Product1' /></td>
<td><input type='text' id='p1' value='10' name='prijs' /></td>
<td><input type='text' id='bh1' value='21' name='btw_hoog' /></td>
</tr>
<tr>
<td><input type='text' value='Product2' /></td>
<td><input type='text' id='p2' value='10' name='prijs' /></td>
<td><input type='text' id='bh2' value='21' name='btw_hoog' /></td>
</tr>
<tr>
<td><input type='text' value='Product3' /></td>
<td><input type='text' id='p3' value='10' name='prijs' /></td>
<td><input type='text' id='bl1' value='6' name='btw_laag' /></td>
</tr>
<tr>
<td><input type='text' value='Product4' /></td>
<td><input type='text' id='p4' value='10' name='prijs' /></td>
<td><input type='text' id='bl2' value='6' name='btw_laag' /></td>
</tr>
<tr>
<td><button id='myBtn'>Bereken</button></td>
</tr>
<tr>
<td>Totaal:</td>
<td><input type='text' value='' id='totaalprijs' class='totaalprijs' /></td>
</tr>
<tr>
<td>Totaal BTW Laag:</td>
<td><input type='text' value='' id='totaalbtwlaag_input' /></td>
</tr>
<tr>
<td>Totaal BTW Hoog:</td>
<td><input type='text' value='' id='totaalbtwhoog' /></td>
</tr>
<tr>
<td>Totaal incl. BTW:</td>
<td><input type='text' value='' class='totaalinc' /></td>
</tr>
在这篇文章中我有4排产品。 产品=产品名称,Prijs是产品的奖品,BTW是税。 现在基本上我试图实现的是填充4行Totaal,BTW Laag,Totaal BTW Hoog和Totaal incl。当我点击按钮时BTW。
Totaal是奖品的总和。我得到了这个工作。 Totaal BTW Laag是id bl的值,这是6. 6正在进行中,所以我尝试了(6/100)*奖,但这不起作用..
有人能指出我正确的方向吗? 这是我的javascript:
function getPrijs()
{
var prijzenCount = document.getElementsByName("prijs");
var total = 0;
var id= '';
for(var i = 0; i < prijzenCount.length; i++)
{
id = "p"+(i+1);
total = total + parseInt(document.getElementById(id).value);
}
document.getElementById('totaalprijs').value = total;
calcBtwLaag();
}
function calcBtwLaag()
{
var btwlaagCount = document.getElementsByName("btw_laag");
var total = 0;
var id= '';
var prijsid = '';
for(var i = 0; i < btwlaagCount.length; i++)
{
id = "bl"+(i+1);
prijsid = "prijs_laag_"+(i+1);
if(isNaN(prijsid)) {
document.getElementsByName(prijsid).value = 0;
var prijsvalue = parseInt(document.getElementsByName(prijsid).value);
var btw_laag_procent = parseInt(document.getElementById(id).value);
var btw_laag_result = (btw_laag_procent / 100) * prijs;
alert(btw_laag_result);
total = total + parseInt(btw_laag_result);
}
}
document.getElementById('totaalbtwlaag_input').value = total;
return total;
}
function test()
{
alert(document.getElementById('b3').value);
}
myBtn.addEventListener('click', function(event) {
getPrijs();
});
答案 0 :(得分:2)
您缺少右括号:
if (!isNaN(prijsid)) {
note this ----^
答案 1 :(得分:2)
尝试使用浮点数,而不是整数。如果它们是整数,则6/100 = 0.
var btw_laag_procent = parseFloat(document.getElementById(id).value);
var btw_laag_result = (btw_laag_procent / 100.0) * parseFloat(prijs);
答案 2 :(得分:2)
一些问题
if (!isNaN(prijsvalue) {
中缺少)
的语法错误。它应该是if (!isNaN(prijsid)) {
使用isNaN
进行的检查是检查元素的名称,而不是其值。
你应该首先得到它的值并检查它(还注意到当使用getElementsByName
时你得到一个集合,所以你需要以数组的形式访问它的元素。使用[0]
获取第一个元素即使只有一个。)
prijsid = "prijs_laag_" + (i + 1);
prijsvalue = parseInt(document.getElementsByName(prijsid)[0].value,10);
if (!isNaN(prijsvalue)) {
(btw_laag_procent * prijsvalue) / 100