无法在javascript中读取输入的数字

无法在javascript中读取输入的数字,javascript,Javascript,我刚刚开始使用JavaScript,这似乎是一个真正的初学者问题。我试图制作一个网页,用户可以输入一个数字,并能够平方它。我已经能够编写以下代码,显示带有提示和输入字段、开始计算按钮和答案区域的页面: <html> <head> <script> function calculate(){ alert("In calculate fn") // NOT REACHING HERE;

我刚刚开始使用JavaScript,这似乎是一个真正的初学者问题。我试图制作一个网页,用户可以输入一个数字,并能够平方它。我已经能够编写以下代码,显示带有提示和输入字段、开始计算按钮和答案区域的页面:

<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中使用miss
s

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");