JavaScript 函数无法处理事件



这就是问题所在,我最近一直在研究两段代码,与事件处理有关的基本 Js 和 onClick 函数 - 一切正常,直到今天,单击链接到函数的按钮时没有任何反应。代码如下:

<html>
<title>Calculate Your Monthly Payments</title> 
        <script language="JavaScript"> 
            function Calc(){ 
            var a, res;             
            a = parseFloat(document.monthly.borrow.value); 
            res1 = a/300;
            res2 = a/500;
            res3 = a/900;

            if (document.monthly.borrow.value == ""){
                window.alert("Enter the amount that you will be borrowing.");
                return;
            }
            else if (document.monthly.payments.selectedIndex == 0){
                window.alert("Please select a mortgage type.");
                return;
            }
            else if(document.monthly.payments.value == "1" )
            {
                window.alert("Your short term monthly repayments have been estimaded to be £" + res1);
            }
            else if(document.monthly.payments.value == "2" )
            {
                window.alert("Your medium term monthly repayments have been estimaded to be £ " + res2);
            }
            else if(document.monthly.payments.value == "3" )
            {
                window.alert("Your long term monthly repayments have been estimaded to be £ " + res3);
            } 
        }
        </script> 
</head> 

<div id="container">
        <h2>Calculate Your Monthly Payments</h2> 
        <h4>Please fill in the form below</h4>
         <form id="monthly"> 
           How much are you borrowing? (£):<font color="#900">*</font> <br /><input name = "borrow" type = "text" size = "10" id="textarea" /> <br /><br />
                Mortgage Type: <br />
                <select name = "payments">
                  <option value="" selected="selected">Please Select </option>
                  <option value="1">CompleteQuaters Mortgage 2.19% fixed until 2015 </option>
                  <option value="2">CompleteQuaters Mortgage 3.17% fixed until 2017 </option>
                  <option value="3">CompleteQuaters Mortgage 3.18% fixed until 2024 </option>
                </select>
                <br /><br />                
           <input type = "button" value = "Calculate Payments! " onclick = "Calc();" /> 
           <br />
                <p><font color="#900">*Indicates Required Fields</font></p>
        </form>
</html>
当然,我

通过Chrome(20.0.1096.1)运行了它,肯定我得到了一个错误,准确地说是一个错误:

捕获的类型错误:无法读取未定义的属性"借用"

我不确定从这里开始,因为此错误一定一直存在,但它正在工作。

问题仍然存在。.
我已经在所有主要浏览器(Firefox,Chrome,IE)和三台不同的计算机(Windows 7,Vista,XP)以及适用于Android和Mobile Safari的Chrome Beta上测试了此代码,但是,它们都不会响应onClick事件。

我还应该指出,在单击正常打开的窗口并显示:

"您的 X 期限月付款是 XXXXX 英镑"。

"X"是所选内容的可变结果。

我已经经历过几次了,但由于我在 Js 方面并不完全出色,我当然会感谢我能得到的任何帮助。


如果需要有关该问题的更多信息,请告诉我。

你正在使用document.monthly.borrow.value所以

<form id="monthly">

应该是

<form name="monthly">

或者您可以按如下方式使用两者

<form name="monthly" id="monthly">

如果要按 id 选择元素,则可以使用 document.getElementById('elementId')

演示

您有一些语法错误:

  1. 未定义res1, res2, res3。这是危险的,因为它使用全局范围,您可能不希望这样做。

  2. 你不能在这样的if语句中return;。这肯定会成为错误的根源。为此,我们使用switch语句和break

  3. 如果要将内容与数字或数字作为字符串进行比较,最好使用===而不是==以避免类型强制。这也是问题的根源。

停止使用属性名称。请改用 ID。要获取元素,请使用 document.getElementById("id")例如(根据您的 HTML,切换:

a = parseFloat(document.monthly.borrow.value); 

a = parseFloat(document.getElementById("textarea").value);

然后,您必须更改其余代码。

相关内容

  • 没有找到相关文章