1

这就是问题所在,我最近一直在处理两段代码,与事件处理有关的基本 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 事件。

我还应该指出,在 onClick 窗口通常打开并显示:

“您的 X 学期月供为 XXXXX 英镑”。

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

我已经多次经历过这一切,但由于我在 Js 方面并不完全出色,我当然会很感激我能得到的任何帮助。


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

4

3 回答 3

2

你这样document.monthly.borrow.value

<form id="monthly">

应该

<form name="monthly">

或者你可以同时使用如下

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

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

演示

于 2012-04-24T22:10:39.873 回答
0

您有一些语法错误:

  1. res1, res2, res3没有定义。这很危险,因为它使用全局范围,而您可能不希望这样。

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

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

于 2012-04-24T22:11:33.863 回答
0

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

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

经过

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

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

于 2012-04-24T22:12:32.427 回答