DreamweaverFAQ.com » Tutorials » JavaScript » Forms And Math Page 4
Author: Mick White Author's Site:MickWeb.com Reference ID: 15630
A discount may be in many formats, but a percentage of the sales price above a certain figure is the most common. We'll create a stand-alone function that will calculate the discount, a "generic" function that can be used again and again. The function will contain 3 arguments, val, threshold and rate, and it will return the variable discount. We'll express the rate argument as a percentage. For example: calculateDiscount(this.form.sub.value,150,"5%") Try it!
<script language="JavaScript"><!--function calculateDiscount(val,threshold,rate){ var discount=(val>threshold)? (val-threshold)*parseFloat(rate)/100:0; return discount;} // --></script>
The above concept is developed further to create this form:
Enter # of widgets @$29.90 each
Price (Remember this value is not used in the calculation. The Price is stored in a hidden field.)
Subtotal(widgets x price)
5% discount on orders over $150.00
Total (Subtotal - discount)
<script language="JavaScript"><!--function calculateDiscount(val,threshold,rate){ var discount=(val>threshold)? (val-threshold)*parseFloat(rate)/100:0; return discount;} function calculate(){ with(document.maths){ if(widgets.value<=0){ alert("Positive numbers only, please"); return; } if (widgets.value % 1!=0){ if(window.confirm("Round up to "+Math.ceil(widgets.value)+"?")) { widgets.value=Math.ceil(widgets.value); } else{ return; } } var Sub=widgets.value*hiddenField.value; var Disc=calculateDiscount(Sub,150,5); discount.value= Disc? to_currency(Disc,"$"):0; subtotal.value =to_currency(Sub,"$"); total.value= to_currency(Sub-Disc,"$"); }}// --></script>
Then add the following code to the body of your document:
<form name="maths"><p><input type="text" name="widgets" size="8">Enter # of widgets @$29.90 each </p><p><input type="text" name="price" value="$29.90" size="8">Price</p><p><input type="text" name="subtotal" size="8">Subtotal(widgets x price)</p><p><input type="text" name="discount" size="8">5% discount on orders over $150.00</p><p><input type="text" name="total" value="Total" size="10">Total(Subtotal - discount)</p><p><input type="button" name="Button" value="Calculate" onClick="calculate()"></form
« Previous | 1 | 2 | 3 | 4
::back to top::
::This page last modified 8/13/2013 at 04:37::