2012-02-06 15 views
0

価格を計算するためのフォームを作成しました。選択肢が増えましたが、1つの選択肢に絞りました。しかし今、私は、より多くの量のために価格がどのように崩れるかを理解することができません。次のように基本的には価格の休憩がありますjavascriptで安価な価格をより多く計算する

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); 
} 

はでした誰か正しい方向に私を指差してください。ありがとうございます

答えて

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); 
} 
+0

これは素晴らしいですが、これは異なる値である項目bと項目cでどのように機能するのですか? – Jakeray

+0

それはコードとHTMLの残りの部分に依存します。あなたのHTMLには1つの製品のみが表示されます。推定することはそれほど難しいことではありません – Richard

関連する問題