2016-11-10 70 views
0

我正在使用大量预定义代码进行一些作业。当我运行我的代码时,到目前为止,FireBug抛出了一个“ReferenceError:homeLoanForm未定义。”我不确定发生了什么,特别是因为我没有编写大部分代码。JavaScript:ReferenceError:homeLoanForm未定义

<!DOCTYPE HTML> 
    <html> 
    <head> 
    <meta charset="utf-8"> 
    <title>Chapter 10 Shoreline State Bank</title> 
    <script type="text/javascript"> 
    <!-- Hide from old browsers --> 
    var adMsg = " ** Did you know some used cars can have 100% loan value? Ask for details! ** " 
    var beginPos = 0 
    function scrollingMsg() { 
     msgForm.scrollingMsg.value = adMsg.substring(beginPos, adMsg.length)+adMsg.substring(0, beginPos) 
     beginPos=beginPos+1 
     if (beginPos>adMsg.length) { 
      beginPos=0 
     } 
     window.setTimeout("scrollingMsg()",200) 
    } 

    var salesAmt 
    var loanAmt 
    var loanRate 
    var loanYears 

    function validSalesAmt() { 
     var salesAmt=parseInt(homeLoanForm.SaleAmount.value,10) 
     if (isNaN(salesAmt) || (salesAmt <= 0)) { 
      alert("The sales price is not a valid number!") 
      homeLoanForm.SaleAmount.value = "" 
      homeLoanForm.SaleAmount.focus() 
     } 
     else { 
      var downPmtAmt=parseInt(homeLoanForm.DownPayment.value,10) 
      if (isNaN(downPmtAmt) || (downPmtAmt <= 0) || (downPmtAmt > salesAmt)) { 
       alert("The down payment should be greater than 0 and less than the sales amount!") 
       homeLoanForm.DownPayment.value = "" 
       homeLoanForm.DownPayment.focus() 
      } 
      else{ 
       loanAmt = salesAmt-downPmtAmt 
       homeLoanForm.LoanAmount.value = loanAmt 
       homeLoanForm.Rate.focus() 
      } 
     } 
    } 

    function CalcLoanAmt() { 
     loanRate=parseFloat(homeLoanForm.Rate.value) 
     if (isNaN(loanRate) || (loanRate <= 0)) { 
      alert("The interest rate is not a valid number!") 
      homeLoanForm.Rate.value = "" 
      homeLoanForm.Rate.focus() 
     } 
     else { 
      loanYears=homeLoanForm.Years.value 
      if (isNaN(loanYears) || (loanYears < 1 || loanYears > 30)) { 
       alert("Please select a valid number from the list (10, 15, 20, or 30)!") 
       homeLoanForm.Years.selectedIndex = 0 
       homeLoanForm.Years.focus() 
      } 
     } 
    } 

    //--> 
    </script> 
    <style type="text/css"> 
    <!-- 
    .align-center { 
     text-align:center; 
    } 

    table { 
     margin-left: auto; 
     margin-right: auto; 
     width: 70%; 
    } 

    .block { 
     width: 50%; 
     margin-right: auto; 
     margin-left: auto; 
    } 

    .center-div { 
     width: 70%; 
     margin-right: auto; 
     margin-left: auto; 
    } 

    .header-text { 
     font-family: Arial, Helvetica, sans-serif; 
     font-size: 12pt; 
     font-weight: bold; 
     text-align: center; 
    } 

    .center-items { 
     text-align: center; 
    } 

    .right-align { 
     text-align: right; 
     width: 50%; 
    } 

    .left-align { 
     text-align: left; 
     width: 50%; 
    } 

    #displayDateLast { 
     text-align: left; 
     width: 50%; 
     margin-right: auto; 
     margin-left: auto; 
    } 

    --> 
    </style> 
    </head> 
    <body onload="scrollingMsg();"> 
    <div class="center-div"> 
     <p class="center-items"><img src="chapter10-1banner.jpg" alt="banner" /></p> 
    </div> 
    <div class="center-div"> 
    <form id="msgForm"> 
     <p style="text-align: center;"><input type="text" name="scrollingMsg" size="25" /></p> 
    </p> 
    </div> 
    <p style="text-align:center; font-size:16; font-weight:bold;">Home Mortgage Loan Payment Calculator</p> 
    <p class="block"><strong>Directions: </strong>Enter the agreed selling price, press the tab key, enter the down payment and press the tab key. The loan amount will be calculated automatically. Then enter the interest rate and the number of years for the loan and click the Calculate button.</p> 
    <div class="center-div"> 
    <form id="homeLoanForm" method="post"> 
     <table> 
      <tr> 
       <td class="right-align"> 
        <span style="color:#cc0000;">*</span>Sales Price: 
       </td> 
       <td class="align-left"><input type="text" name="SaleAmount" size="9" /></td> 
      </tr> 
      <tr> 
       <td class="right-align"> 
       <span style="color:#cc0000;">*</span>Down Payment in Dollars 
       </td> 
       <td class="align-left"><input name="DownPayment" type="text" id="DownPayment" size="9" onblur="validSalesAmt()" /></td> 
      </tr> 
      <tr> 
       <td class="right-align"> 
       <span style="color:#cc0000;">*</span>Loan Amount 
       </td> 
       <td class="align-left"><input name="LoanAmount" type="text" id="LoanAmount" size="9" />   
       </td> 
      </tr> 
      <tr> 
       <td class="right-align"> 
        <span style="color:#cc0000;">*</span>Interest Rate (e.g. 5.9): 
       </td> 
       <td class="align-left"><input name="Rate" type="text" id="Rate" size="5" maxlength="5" /> 
       </td> 
      </tr> 
      <tr> 
       <td class="right-align"> 
        <span style="color:#cc0000;">*</span>Number of Years: 
       </td> 
       <td><select name="Years" id="Years"> 
       <option value="0">Select Number of Years</option> 
       <option value=10>10</option> 
       <option value=15>15</option> 
       <option value=20>20</option> 
       <option value=30>30</option> 
       </select></td> 
      </tr> 
      <tr> 
       <td class="right-align"> 
       <input name="button" type="button" value="Calculate" onclick="CalcLoanAmt()" /> 
       </td> 
       <td class="align-left"> 
       <input name="Reset" type="reset" /> 
       </td> 
      </tr> 
      <tr> 
       <td class="right-align"> 
        <span style="font-weight:bolder;">Monthly Payment:</span> 
       </td> 
       <td><input type="text" name="Payment" id="Payment" value=" " size="12" /></td> 
      </tr> 
      <tr> 
       <td colspan="2" class="align-center"> 
       <span style="color:#cc0000; font-size:12px;">* Indicates a required field.</span> 
       </td> 
      </tr> 
     </table> 
    </form> 
    </div> 

    </body> 
    </html> 
+2

的错误信息是很清楚你的变量'homeLoanForm'一直没有为其设置一个值。您需要遍历代码并找出该变量应该引用的内容,然后确保您拥有将该值赋予其的代码。 –

回答

1

那么,你从来没有在你的代码中定义变量homeLoanForm

假设它应该是指你的形式使用相同的ID,确保在使用前对其进行定义,例如:

var homeLoanForm = document.getElementById('homeLoanForm'); 
+0

好吧,我把这段代码放进去了,但现在说homeLoanForm为空 – deathBBQ

+0

你的脚本需要跟在你的HTML之后。它首先是空的,但如果你的脚本在HTML之后,它将不会为空。 –

0

我加一个变量来homeLoanForm。现在应该工作。

var homeLoanForm = document.getElementById('homeLoanForm'); 
 
var adMsg = " ** Did you know some used cars can have 100% loan value? Ask for details! ** " 
 
    var beginPos = 0 
 
    function scrollingMsg() { 
 
     msgForm.scrollingMsg.value = adMsg.substring(beginPos, adMsg.length)+adMsg.substring(0, beginPos) 
 
     beginPos=beginPos+1 
 
     if (beginPos>adMsg.length) { 
 
      beginPos=0 
 
     } 
 
     window.setTimeout("scrollingMsg()",200) 
 
    } 
 

 
    var salesAmt 
 
    var loanAmt 
 
    var loanRate 
 
    var loanYears 
 

 
    function validSalesAmt() { 
 
     var salesAmt=parseInt(homeLoanForm.SaleAmount.value,10) 
 
     if (isNaN(salesAmt) || (salesAmt <= 0)) { 
 
      alert("The sales price is not a valid number!") 
 
      homeLoanForm.SaleAmount.value = "" 
 
      homeLoanForm.SaleAmount.focus() 
 
     } 
 
     else { 
 
      var downPmtAmt=parseInt(homeLoanForm.DownPayment.value,10) 
 
      if (isNaN(downPmtAmt) || (downPmtAmt <= 0) || (downPmtAmt > salesAmt)) { 
 
       alert("The down payment should be greater than 0 and less than the sales amount!") 
 
       homeLoanForm.DownPayment.value = "" 
 
       homeLoanForm.DownPayment.focus() 
 
      } 
 
      else{ 
 
       loanAmt = salesAmt-downPmtAmt 
 
       homeLoanForm.LoanAmount.value = loanAmt 
 
       homeLoanForm.Rate.focus() 
 
      } 
 
     } 
 
    } 
 

 
    function CalcLoanAmt() { 
 
     loanRate=parseFloat(homeLoanForm.Rate.value) 
 
     if (isNaN(loanRate) || (loanRate <= 0)) { 
 
      alert("The interest rate is not a valid number!") 
 
      homeLoanForm.Rate.value = "" 
 
      homeLoanForm.Rate.focus() 
 
     } 
 
     else { 
 
      loanYears=homeLoanForm.Years.value 
 
      if (isNaN(loanYears) || (loanYears < 1 || loanYears > 30)) { 
 
       alert("Please select a valid number from the list (10, 15, 20, or 30)!") 
 
       homeLoanForm.Years.selectedIndex = 0 
 
       homeLoanForm.Years.focus() 
 
      } 
 
     } 
 
    }
.align-center { 
 
      text-align: center; 
 
     } 
 
     
 
     table { 
 
      margin-left: auto; 
 
      margin-right: auto; 
 
      width: 70%; 
 
     } 
 
     
 
     .block { 
 
      width: 50%; 
 
      margin-right: auto; 
 
      margin-left: auto; 
 
     } 
 
     
 
     .center-div { 
 
      width: 70%; 
 
      margin-right: auto; 
 
      margin-left: auto; 
 
     } 
 
     
 
     .header-text { 
 
      font-family: Arial, Helvetica, sans-serif; 
 
      font-size: 12pt; 
 
      font-weight: bold; 
 
      text-align: center; 
 
     } 
 
     
 
     .center-items { 
 
      text-align: center; 
 
     } 
 
     
 
     .right-align { 
 
      text-align: right; 
 
      width: 50%; 
 
     } 
 
     
 
     .left-align { 
 
      text-align: left; 
 
      width: 50%; 
 
     } 
 
     
 
     #displayDateLast { 
 
      text-align: left; 
 
      width: 50%; 
 
      margin-right: auto; 
 
      margin-left: auto; 
 
     }
<!DOCTYPE HTML> 
 
<html> 
 

 
<head> 
 
    <meta charset="utf-8"> 
 
    <title>Chapter 10 Shoreline State Bank</title> 
 
</head> 
 

 
<body onload="scrollingMsg();"> 
 
    <div class="center-div"> 
 
     <p class="center-items"><img src="chapter10-1banner.jpg" alt="banner" /></p> 
 
    </div> 
 
    <div class="center-div"> 
 
     <form id="msgForm"> 
 
      <p style="text-align: center;"><input type="text" name="scrollingMsg" size="25" /></p> 
 
      </p> 
 
    </div> 
 
    <p style="text-align:center; font-size:16; font-weight:bold;">Home Mortgage Loan Payment Calculator</p> 
 
    <p class="block"><strong>Directions: </strong>Enter the agreed selling price, press the tab key, enter the down payment and press the 
 
     tab key. The loan amount will be calculated automatically. Then enter the interest rate and the number of years for 
 
     the loan and click the Calculate button.</p> 
 
    <div class="center-div"> 
 
     <form id="homeLoanForm" method="post"> 
 
      <table> 
 
       <tr> 
 
        <td class="right-align"> 
 
         <span style="color:#cc0000;">*</span>Sales Price: 
 
        </td> 
 
        <td class="align-left"><input type="text" name="SaleAmount" size="9" /></td> 
 
       </tr> 
 
       <tr> 
 
        <td class="right-align"> 
 
         <span style="color:#cc0000;">*</span>Down Payment in Dollars 
 
        </td> 
 
        <td class="align-left"><input name="DownPayment" type="text" id="DownPayment" size="9" onblur="validSalesAmt()" /></td> 
 
       </tr> 
 
       <tr> 
 
        <td class="right-align"> 
 
         <span style="color:#cc0000;">*</span>Loan Amount 
 
        </td> 
 
        <td class="align-left"><input name="LoanAmount" type="text" id="LoanAmount" size="9" /> 
 
        </td> 
 
       </tr> 
 
       <tr> 
 
        <td class="right-align"> 
 
         <span style="color:#cc0000;">*</span>Interest Rate (e.g. 5.9): 
 
        </td> 
 
        <td class="align-left"><input name="Rate" type="text" id="Rate" size="5" maxlength="5" /> 
 
        </td> 
 
       </tr> 
 
       <tr> 
 
        <td class="right-align"> 
 
         <span style="color:#cc0000;">*</span>Number of Years: 
 
        </td> 
 
        <td><select name="Years" id="Years"> 
 
       <option value="0">Select Number of Years</option> 
 
       <option value=10>10</option> 
 
       <option value=15>15</option> 
 
       <option value=20>20</option> 
 
       <option value=30>30</option> 
 
       </select></td> 
 
       </tr> 
 
       <tr> 
 
        <td class="right-align"> 
 
         <input name="button" type="button" value="Calculate" onclick="CalcLoanAmt()" /> 
 
        </td> 
 
        <td class="align-left"> 
 
         <input name="Reset" type="reset" /> 
 
        </td> 
 
       </tr> 
 
       <tr> 
 
        <td class="right-align"> 
 
         <span style="font-weight:bolder;">Monthly Payment:</span> 
 
        </td> 
 
        <td><input type="text" name="Payment" id="Payment" value=" " size="12" /></td> 
 
       </tr> 
 
       <tr> 
 
        <td colspan="2" class="align-center"> 
 
         <span style="color:#cc0000; font-size:12px;">* Indicates a required field.</span> 
 
        </td> 
 
       </tr> 
 
      </table> 
 
     </form> 
 
    </div> 
 

 
</body> 
 

 
</html>