Visa ett inlägg
Oläst 2005-09-16, 15:27 #1
estberg estberg är inte uppkopplad
Nykomling
 
Reg.datum: Oct 2004
Inlägg: 40
estberg estberg är inte uppkopplad
Nykomling
 
Reg.datum: Oct 2004
Inlägg: 40
Hej. Skulle vilja ha hjälp med följande JS kod, det är något som fattas eller nåt litet minifel nånstans för det funkar inte. Ganska så basic kod, vad är det jag missar? Formulärets uppgift är att beräkna lånesatser.


HTML:

<form name="loandata">
<table>
<tr>
<td>Amount of the loan (xUSD) &raquo;</td><td><input type="text" name="capital" size="10" onChange="calculate();" /></td>
</tr>
<tr>
<td>Annual percentage rate &raquo;</td><td><input type="text" name="interest" size="10" onChange="calculate()" /></td>
</tr>
<tr>
<td>Repayment period in years &raquo;</td><td><input type="text" name="years" size="10" onChange="calculate()" /></td>
</tr>
<tr>
<td>
<input type="button" value="Calculate" onClick="calculate()">

</td><td></td>
</tr>
<tr>
<td>Your monthly payment will be &raquo;</td><td><input type="text" name="payment" size="10" onChange="calculate()" /></td>
</tr>
<tr>
<td>Your total payment will be &raquo;</td><td><input type="text" name="total" size="10" onChange="calculate()" /></td>
</tr>
<tr>
<td>Your total interest payments will be &raquo;</td><td><input type="text" name="totalinterest" size="10" onChange="calculate()" /></td>
</tr>
</table>
</form>




JS:


function calculate() // The loan calculator function
{

var capital = document.loandata.capital.value; // The input
var interest = document.loandata.interest.value / 100 / 12;
var payments = document.loandata.years.value * 12;
var x = Math.pow(1 + interest, payments);
var monthly = (capital*x*interest)/(x-1);

if (!isNaN(monthly) && // Checks that the result is a finite number, otherwise display nothing
(monthly != Number.POSITIVE_INFINITY) &&
(monthly != Number.NEGATIVE_INFINITY))
{
document.loandata.payment.value = round(monthly); // The output, if valid
document.loandata.total.value = round(monthly * payments);
document.loandata.totalinterest.value = round((monthly * payments) - capital);
}
else // The output, if not valid
{
document.loandata.payment.value = "";
document.loandata.total.value = "";
document.loandata.totalinterest.value = "";
}
}

function round(x) // External round up/down for the loan calculator numbers
{
return Math.round(x*100)/100;
}
estberg är inte uppkopplad   Svara med citatSvara med citat