这就是问题所在,我最近一直在研究两段代码,与事件处理有关的基本 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')
演示
您有一些语法错误:
-
未定义
res1, res2, res3
。这是危险的,因为它使用全局范围,您可能不希望这样做。 -
你不能在这样的
if
语句中return;
。这肯定会成为错误的根源。为此,我们使用switch
语句和break
。 -
如果要将内容与数字或数字作为字符串进行比较,最好使用
===
而不是==
以避免类型强制。这也是问题的根源。
停止使用属性名称。请改用 ID。要获取元素,请使用 document.getElementById("id")例如(根据您的 HTML,切换:
a = parseFloat(document.monthly.borrow.value);
由
a = parseFloat(document.getElementById("textarea").value);
然后,您必须更改其余代码。