在javascript中通过更多数量计算更便宜的价格

时间:2012-02-06 14:50:05

标签: javascript html forms

我创建了一个表单来计算价格乘以商品数量。它有更多的选择,但我把它缩小到一个选择。但现在我无法弄清楚如何为更多的数量打破价格。基本上有价格突破如下:

 Item A is 4.60 for 1+ item. For 10+ items 3.40, 25+ 2.68 and so on until it hits 5000+ items.  This is the same for items, B and C except they are priced different. 

如何使用以下方法计算:

Html表格:

<form action="#" id="price-quote" onsubmit="return false">
<table width="501" border="0" cellpadding="10" cellspacing="20" style="padding-  top:30px;">
<tr>
<th width="67" scope="row">Size:</th>
<td width="273" class="select-box">  <select id="size" name="size">
<option value="None">Select Size</option>
<option value="2.5 inches">2.5 inches</option>
<option value="3 inches">3 inches</option>
<option value="Oval">Oval</option>
</select>
</td>
 </tr>
<tr>
<th scope="row">Quanitity:</th>
<td><input type="text"  name="quantity" id="quantity" /></td>
</tr>
<tr>
 <th scope="row">&nbsp;</th>
<td><input class="button" type="button" value="Update" onmousedown="getTotal()"/></td>
</tr>
<tr>
<th> Price:</th>
<td><div id="totalPrice" style="float:right;"></div></td>
</tr>
</table>
</form>

使用Javascript:

var size_prices= new Array();
size_prices["None"]=0;
size_prices["2.5 inches"]=4.60;
size_prices["3 inches"]=4.90;
size_prices["Oval"]=5.10;

function getSizePrice()
 {
var sizePrice;
var theForm = document.forms["price-quote"];
 var selectedSize = theForm.elements["size"];
sizePrice = size_prices[selectedSize.value];
return sizePrice;
}

function getQuantity()
{
var theForm = document.forms["price-quote"];
//Get a reference to the TextBox
var quantity = theForm.elements["quantity"];
var howmany =0;
//If the textbox is not blank
if(quantity.value!="")
{
    howmany = parseInt(quantity.value);
}
return howmany;
}

function getTotal()
{
var instantPrice = getSizePrice() * getQuantity(); 
document.getElementById('totalPrice').innerHTML =
                                  "$"+instantPrice.toFixed(2);
}

有人可以指出我正确的方向。谢谢

1 个答案:

答案 0 :(得分:3)

function getTotal()
{
    var q = getQuantity();
    var unitPrice =  4.60;
    if(q >= 10){
        unitPrice =  3.40;
    } else if (q >= 25){
        unitPrice =  2.68;
    }

    var instantPrice = unitPrice * q; 
    document.getElementById('totalPrice').innerHTML =
                              "$"+instantPrice.toFixed(2);
}