所以我很確定我在這裏錯過了一些非常明顯的東西,但是在過去的許多小時裏,我曾在一個大型項目的許多部分工作過,打破我的頭。使用Javascript自動更新/計算HTML表格中的行值
基本上我試圖計算HTML表格中每一行的兩個值。我希望在表格被填寫時自動計算/更新值。
目前既沒有Revenue
也沒有Value
正在自動/計算,雖然我沒有將onkeyup = "getValues()"
添加到HTML代碼。
如果Number Used
字段爲空,則應使用Number in Package
中的值來計算收入(price * inPackage
)。如果不是空白,則應使用該字段中的值(price * numberUsed
)。
很確定我需要指定這需要在每個行的某個位置完成,但是對於我的生活還沒有弄清楚。
下面是一個的jsfiddle鏈接(顯示了HTML,但JS不工作):https://jsfiddle.net/wkts81u9/
這裏是我的HTML代碼:
<table id='worksheet_table' class="table table-striped">
<thead>
<tr>
<th>Package</th>
<th>Number in Package</th>
<th>Number Used</th>
<th>Price</th>
<th>Revenue</th>
<th>Value</th>
</tr>
</thead>
<tbody>
<tr>
<td id="package" name="package">1</td>
<td id="inPackage" name="inPackage">50</td>
<td><input type="text" name="numberUsed" id="numberUsed" class="form-control" onkeyup="getValues()" /></td>
<td><input type="text" name="price" id="price" class="form-control" onkeyup="getValues()" /></td>
<td name="revenue" id="revenue"></td>
<td name="value" id="value"></td>
</tr>
<tr>
<td id="package" name="package">2</td>
<td id="inPackage" name="inPackage">100</td>
<td><input type="text" name="numberUsed" id="numberUsed" class="form-control" onkeyup="getValues()" /></td>
<td><input type="text" name="price" id="price" class="form-control" onkeyup="getValues()" /></td>
<td name="revenue" id="revenue"></td>
<td name="value" id="value"></td>
</tr>
</tbody>
</table>
這裏是我的JS:
function getValues()
{
var numberUsed = Number(document.getElementById('numberUsed').value);
var price = Number(document.getElementById('price').value);
var inPackage = Number(document.getElementById('inPackage').value);
var revenue = 0;
if (numberUsed=="")
{
revenue = price * inPackage;
}
else
{
revenue = price * numberUsed;
}
var value = revenue * 5;
document.getElementById("revenue").innerHTML = revenue;
document.getElementById("value").innerHTML = value;
}
(對不起,我的代碼中的任何亂碼格式)
任何人都可以告訴我在這裏錯過了什麼?
你有2個元素相同的ID:numberUsed。 「id全局屬性定義了一個唯一的標識符(ID),它在整個文檔中必須是唯一的。」查看此鏈接:https://developer.mozilla.org/en/docs/Web/HTML/Global_attributes/id。同樣的:價格,收入等 –
@LeonardLepadatu,使完整和完整的意義,但我不想有硬編碼相同的計算很多次不同的ID ...因此,我爲什麼尋找一種方法遍歷每一行並重新使用計算。 –
即使我只使用一個具有該名稱的元素,它仍然不會自動計算/更新... –