首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript: ReferenceError: homeLoanForm未定义

JavaScript: ReferenceError: homeLoanForm未定义
EN

Stack Overflow用户
提问于 2016-11-10 20:05:01
回答 2查看 68关注 0票数 0

我正在做一些作业,里面有很多预定义的代码。到目前为止,当我运行我的代码时,FireBug会弹出一个"ReferenceError: homeLoanForm未定义“。我不知道发生了什么,尤其是因为我没有编写大部分代码。

代码语言:javascript
复制
<!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>
EN

回答 2

Stack Overflow用户

发布于 2016-11-10 20:09:27

好吧,您从未在代码中定义变量homeLoanForm

假设它应该使用相同的id引用您的表单,请确保在使用它之前定义它,例如:

代码语言:javascript
复制
var homeLoanForm = document.getElementById('homeLoanForm');
票数 1
EN

Stack Overflow用户

发布于 2016-11-10 20:27:53

我向homeLoanForm添加了一个变量。现在应该能用了。

代码语言:javascript
复制
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()
            }
        }
    }
代码语言:javascript
复制
.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;
        }
代码语言:javascript
复制
<!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>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40536103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档