我有一个包含数量、项目名称、价格和总价的表格。商品名称和价格是我将从 XML 文件中检索的信息。数量字段是用户可以输入他们想要的任何数量的地方。
我需要做的是当用户输入某个商品的数量时,它将采用该数量并乘以该特定商品的价格,然后将其显示在“总价”字段中。然后,该总价格字段将被加在一起以给出小计。价格是从 XML 文件中检索的一组数字。数量根据用户而变化。他们不必购买所有物品。
例如:数量:3 项目 1:10 美元 -> 30 美元 数量:2 项目 2:5 美元 --> 10 美元 小计:40 美元所有这一切都会在用户输入他们的数量时发生。到目前为止,我将 XML 中的数据检索到一个数组中。并将用户 qty 放入另一个数组。但我不知道如何使它工作。谢谢你。
HTML 代码:
<div id="order">
<table class="bottomBorder" id="torder">
<tr class="style3"><th align="center">Quantity</th>
<th width="200px">Item Description</th>
<th>Price</th>
<th>Total Price</th>
<script>
var xmlDoc = getXML();
var x=xmlDoc.getElementsByTagName("item");
for (i=0;i<x.length;i++)
{
var Qty = "Qty" + i;
var totalprice = "totalprice" + i;
document.write('<tr><td align="center">');
document.write('<input type= "text" id="' + Qty +'" name="txtQty" size="2" maxlength="4"/>');
document.write("</td><td>");
document.write(x[i].getElementsByTagName("name")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write(x[i].getElementsByTagName("price")[0].childNodes[0].nodeValue);
document.write("</td><td>");
document.write('<span id="'+totalprice+'"></span>');
document.write("</td></tr>");
}
</script>
</table>
<table class="bottomBorder">
<tr>
<td width="323" class="style4" align="right" >Subtotal</td>
<td width="75" align="right" id="subtotal"></td>
</tr>
</table>
Javascript代码:
function QtyValue()
{
var Qtys =document.getElementById('torder').getElementsByTagName('input');
var Qty = [];//create array
var error2 = document.getElementById("errorinfo2");
for (var i = 0, l = Qtys.length; i < l; ++i) { //looping through txtqty input
if (Qtys[i].value.length) {
Qty.push(Qtys[i].value); //pushing value into Qty array
}
}
if(Qty.every(isNumeric) /*&& Qty.length!==0*/) //check to see if info entered in array Qty is a number and is not empty
{
return Qty;
}else{
error2.style.display="block";
error2.innerHTML = "*Please enter a valid number for your quantity";
return false;
}
}
//Getting value for price from productlist.xml into an array
function Price()
{
var xmlDoc = getXML();
// Pull out the quote and author elements
var nPrice = xmlDoc.getElementsByTagName('price');
// Create our two arrays
var arrPrice=[];
// Loop through each quote elements yanking out the values and pushing them into the array
for (i=0; i<nPrice.length; i++)
{
arrPrice.push(nPrice[i].childNodes[0].nodeValue);
}
return arrPrice;
}