2013-06-21 1 views
0

필드를 클릭하거나 변경할 때마다 양식을 계산하는 계산기 용 스크립트가 있습니다. 그것은 잘 작동하지만 또한 페이지로드시 기본값으로 계산 된 양식을 원합니다. 그래서 내가 더했다왜이 window.onload가 내 기능을 트리거하지 않습니까?

window.onload = Calc (form);

양식 끝 부분에 있지만 작동하지 않으며 양식이 계산되지 않습니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까? 아마도 명백한 대답 일 테지만, 나에게는 분명하지 않습니다. 어떤 도움을 주셔서 감사합니다!

<script type="text/javascript">// <![CDATA[ 
// Javascript Mortgage Calculator 
function Calc(form) { 
var x, y, incm, intRate = 0; 
    intRate = form.rate.value/100/12; 
    p = form.term.value * 12; 
    form.down.value = form.price.value * form.pdown.value/100; 
    form.loan.value = form.price.value - form.down.value; 
    x = form.loan.value * intRate * Math.pow(1 + intRate, p); 
    y = Math.pow(1 + intRate, p) - 1; 
    form.pni.value = parseInt(x/y); 
    form.taxes.value = parseInt(form.price.value * form.taxrate.value/1200); 
    form.ins.value = parseInt(form.price.value * form.insrate.value/1200); 
       form.pmirate.value = 0; 
    if (form.pdown.value < 20) { 
    form.pmirate.value = .5; 
    } 
    if (form.pdown.value < 10) { 
    form.pmirate.value = .9; 
    } 
    form.pmi.value = parseInt(form.loan.value * form.pmirate.value/1200); 
    form.piti.value = parseInt(form.pni.value) + parseInt(form.taxes.value) + parseInt(form.ins.value) + parseInt(form.pmi.value); 



} 
function Hnt(form,f) { 
var text = "No Hint available for this field!"; 
    if (form.pni.value == "") { 
    Calc(form); 
    } 
    if (f == "price") { 
    text = "Enter the purchase price of the home."; 
    } 
    if (f == "pdown") { 
    text = "Enter the percent that you will put down, usually 5, 10, or 20%."; 
    } 
    if (f == "loan") { 
    text = "This is the financed loan amount borrowed from the lender."; 
    } 
    if (f == "down") { 
    text = "This is the down payment amount, not including closing costs."; 
    } 
    if (f == "rate") { 
    text = "Enter the interest rate for the loan in percent."; 
    } 
    if (f == "term") { 
    text = "Enter the term in years for the loan, usually 15 or 30."; 
    } 
    if (f == "pni") { 
    text = "This is the total principal and interest portion of your monthly payment."; 
    } 
    if (f == "taxrate") { 
    text = "This is the total percentage per year of state, county, and city taxes, as a percentage of the purchase price."; 
    } 
    if (f == "insrate") { 
    text = "This is Homeowner' Insurance rate per year, as a percentage of the loan amount."; 
    } 
    if (f == "ins") { 
    text = "This is the total Homeowners Insurance per month."; 
    } 
    if (f == "pmirate") { 
    text = "Private Mortgage Insurance is required for loans over 80%. This is calculated as a percentage per year of the loan amount."; 
    } 
    if (f == "pmi") { 
    text = "This is the Private Mortgage Insurance per month."; 
    } 
    if (f == "piti") { 
    text = "This is the total monthly payment, PITI, Principal + Interest + Taxes + Insurance"; 
    } 
    if (f == "inc") { 
    text = "Enter your total combined annual gross income."; 
    } 
    if (f == "taxes") { 
    text = "This is the total taxes per month."; 
    } 
    if (f == "debt") { 
    text = "Enter your total monthly debt, car loans, credit cards, student loans, etc."; 
    } 
    if (f == "taxes") { 
    text = "This is the total taxes per month."; 
    } 
    if (f == "fr") { 
    text = "Ratio of PITI to your monthly income. Most lenders require 28% or less."; 
    } 
    if (f == "bk") { 
    text = "Ratio of (PITI+debt) to your monthly income. Most lenders require 36% or less"; 
    } 
    if (f == "qualtext") { 
    text = "Do you qualify?, and if you don't, why not?"; 
    } 
    if (f == "hint") { 
    text = "This field displays hints for the field that currently has the cursor in it."; 
    } 

} 
// ]]></script> 
<center><form></form></center><center> 
<p></p> 
<form id="Calculator"> 
<table cellspacing="0" bordercolordark="#999999" cellpadding="0" bordercolorlight="#CCCCCC" border="2" style="background-color: #fffdf6;"> 
<tbody> 
<tr><th colspan="3"> 
<h3>Mortgage Calculator</h3> 
<p>Click any field to calculate the payment information.</p> 
</th></tr> 
<tr> 
<td> 
<table valign="top"> 
<tbody> 
<tr><th valign="top" align="center" colspan="2">Purchase Information</th></tr> 
<tr> 
<td align="right">Home Price $</td> 
<td><input onfocus="Hnt(this.form,this.name)" onchange="Calc(this.form)" size="5" value="200000" name="price" type="text" /></td> 
</tr> 
<tr> 
<td align="right">Down %<input onfocus="Hnt(this.form,this.name)" onchange="Calc(this.form)" size="1" value="10" name="pdown" type="text" />$</td> 
<td><input onfocus="Hnt(this.form,this.name)" onchange="Calc(this.form)" size="5" name="down" type="text" /></td> 
</tr> 
<tr> 
<td align="right">Loan Amount $</td> 
<td><input onfocus="Hnt(this.form,this.name)" onchange="Calc(this.form)" size="5" name="loan" type="text" /></td> 
</tr> 
<tr> 
<td align="right">Interest Rate %</td> 
<td><input onfocus="Hnt(this.form,this.name)" onchange="Calc(this.form)" size="5" value="5" name="rate" type="text" /></td> 
</tr> 
<tr> 
<td align="right">Term Years</td> 
<td><input onfocus="Hnt(this.form,this.name)" onchange="Calc(this.form)" size="5" value="30" name="term" type="text" /></td> 
</tr> 
</tbody> 
</table> 
</td> 
<td> 
<table valign="top"> 
<tbody> 
<tr><th valign="top" align="center" colspan="3">Payment Information</th></tr> 
<tr> 
<td align="right" colspan="2">Principal and Interest $</td> 
<td><input onfocus="Hnt(this.form,this.name)" onchange="Calc(this.form)" size="5" name="pni" type="text" /></td> 
</tr> 
<tr> 
<td style="visibility: hidden;" align="right">Prop Tax Rate %</td> 
<td style="visibility: hidden;"><input onfocus="Hnt(this.form,this.name)" onchange="Calc(this.form)" size="4" value="0" name="taxrate" type="text" />= $</td> 
<td style="visibility: hidden;"><input onfocus="Hnt(this.form,this.name)" onchange="Calc(this.form)" size="5" name="taxes" type="text" /></td> 
</tr> 
<tr> 
<td align="right" style="visibility: hidden;">Insurance Rate %</td> 
<td style="visibility: hidden;"><input onfocus="Hnt(this.form,this.name)" onchange="Calc(this.form)" size="4" value="0" name="insrate" type="text" />= $</td> 
<td style="visibility: hidden;"><input onfocus="Hnt(this.form,this.name)" onchange="Calc(this.form)" size="5" name="ins" type="text" /></td> 
</tr> 
<tr> 
<td align="right">PMI Rate %</td> 
<td><input onfocus="Hnt(this.form,this.name)" onchange="Calc(this.form)" size="4" name="pmirate" type="text" />= $</td> 
<td><input onfocus="Hnt(this.form,this.name)" onchange="Calc(this.form)" size="5" name="pmi" type="text" /></td> 
</tr> 
<tr> 
<td align="right" colspan="2">Total Payment $</td> 
<td><input onfocus="Hnt(this.form,this.name)" onchange="Calc(this.form)" size="5" name="piti" type="text" /></td> 
</tr> 
<tr></tr> 
</tbody> 
</table> 
</td> 
<td></td> 
</tr> 
</tbody> 
</table> 
</form></center> 
<script type="text/javascript">// <![CDATA[ 
window.onload=Calc(form) ; 
// ]]></script> 

답변

4

함수를 등록하지 않고이 함수의 반환 값은 undefined입니다.

교체 좋은 의미가하고 완벽하게 작동

window.onload=function(){ // define a new function 
    Calc(document.getElementById('Calculator')) // find the form and pass it as argument 
}; 
+0

window.onload=Calc(form) ; 

! 해결책과 설명에 대해 너무 고마워요! –

1

당신이 Calc의 결과를 측정하고 그 결과를 전화 온로드시키는 있습니다 때문입니다. 아마도 다른 기능으로 포장해야합니다.

관련 문제