无法在javascript中读取输入的数字
我刚刚开始使用JavaScript,这似乎是一个真正的初学者问题。我试图制作一个网页,用户可以输入一个数字,并能够平方它。我已经能够编写以下代码,显示带有提示和输入字段、开始计算按钮和答案区域的页面:无法在javascript中读取输入的数字,javascript,Javascript,我刚刚开始使用JavaScript,这似乎是一个真正的初学者问题。我试图制作一个网页,用户可以输入一个数字,并能够平方它。我已经能够编写以下代码,显示带有提示和输入字段、开始计算按钮和答案区域的页面: <html> <head> <script> function calculate(){ alert("In calculate fn") // NOT REACHING HERE;
<html>
<head>
<script>
function calculate(){
alert("In calculate fn") // NOT REACHING HERE;
var x = document.getElementByName("SNUM");
document.getElementById("answer_area").innerHTML = x * x;
}
</script>
</head>
<body>
<form>
<table cellspacing = "2" cellpadding = "2" border = "1">
<tr>
<td align = "right">Enter a number: </td>
<td><input type = "text" name = "SNUM" /></td>
</tr>
</table>
</form>
<br>
<button onclick="calculate()">Square it</button>
<b><u><br><br>Answer:</b></u>
<p id="answer_area"></p> <!-- answer to be placed here; -->
</body>
</html>
函数计算(){
警报(“在计算fn中”)//未到达此处;
var x=document.getElementByName(“SNUM”);
document.getElementById(“answer_area”).innerHTML=x*x;
}
输入一个数字:
摆正
答复:
但是,单击按钮时没有响应。问题在哪里?如何解决。谢谢你的帮助。这一行有三件事
document.getElementsByName(“SNUM”)[0]。值代码>
您需要使用索引获取元素,因为getElementsByName
提供了一个集合。第二,您需要获取值,因此使用value
,第三,您的代码中有一个输入错误
函数计算(){
警报(“在计算fn中”)//未到达此处;
var x=document.getElementsByName(“SNUM”)[0]。值;
document.getElementById(“answer_area”).innerHTML=x*x;
}
输入一个数字:
摆正
答复:
1) 在getElementsByName中使用misss
2) getElementsByName
方法返回元素的节点列表集合,因此使用[0]首先获取
3) 要获取值,请使用“value”属性
因此,改变:
var x = document.getElementByName("SNUM");
致:
函数计算(){
警报(“在计算fn中”)//未到达此处;
var x=document.getElementsByName(“SNUM”)[0]。值;
document.getElementById(“answer_area”).innerHTML=x*x;
}
输入一个数字:
摆正
答复:
简单,问题在于:
var x = document.getElementByName("SNUM");
没有名为getElementByName
的方法,而是:
getElementsByName(“SNUM”)
将代码更改为:
函数计算(){
警报(“在计算fn中”)//未到达此处;
var x=document.getElementsByName(“SNUM”)[0]。值;
document.getElementById(“answer_area”).innerHTML=x*x;
}
输入一个数字:
摆正
答复:
您是否检查过开发人员控制台中的错误?您有很多要点不符合“如何提问”的指导原则。请添加一个演示,在那里我们可以重现这个问题,因为现在正在工作。注意,它是元素的复数形式,它返回一个集合(类似数组的结构)。即使行起作用,您也会将元素对象与自身相乘,而不是将该元素中的值相乘。我的代码输入错误是什么?另外,您如何管理此处的代码运行(解释此内容的任何链接)?它应该是document.getElementsByName
而不是document.getElementByName
,请注意元素中的s
。其次,使用堆栈片段来运行代码
var x = document.getElementByName("SNUM");