Javascript:自然数之和---参考错误:未定义

时间:2016-03-09 06:27:00

标签: javascript referenceerror

我写了这段代码,并说它没有定义t1。 " T1"是我的文本框的名称。我在某处读到它可能是局部变量和全局变量的问题,因为其他函数也在使用" t1"。所以我在函数之外声明了变量,以使其成为全局变量但它无论如何都没有帮助。起初," t2"正在构成同样的问题,但使其全局化,错误被删除了。

<head>    
<script language="javascript">
    var x=parseInt(t1.value);
    function nn()
    {

        var i=1;
        var s=0;
        while (i<=x)
            {
            s=s+i;
            i++;
            }

    }
t2.value=s;
</script>
</head>
<body>
Enter A Number : 
<input type=text size=20 name="t1">
<input type=button onclick="nn()" value="Sum of Natural Numbers">
<br>
Sum Obtained : 
<input type=text size=20 name="t2">
</body>

请用简单的话来解释。我的编码知识很少。 谢谢!

6 个答案:

答案 0 :(得分:2)

您只能通过简单地说t1t2来访问javascript中的文本框。您必须获取该元素的引用,然后您应该访问该元素的value属性。

为文本框添加一些ID并使用document.getElementById()方法访问它。请参阅下面的代码段

&#13;
&#13;
function nn() {
  var x = parseInt(document.getElementById('t1').value);
  var i = 1;
  var s = 0;
  while (i <= x) {
    s = s + i;
    i++;
  }
  document.getElementById('t2').value = s;

}
&#13;
<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>

<body>
  Enter A Number :
  <input type=text size=20 name="t1" id='t1'>
  <input type=button onclick="nn()" value="Sum of Natural Numbers">
  <br>Sum Obtained :
  <input type=text size=20 name="t2" id='t2'>
</body>

</html>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

在您的代码中,t1.value不存在。 T1是DOM元素,而不是JavaScript变量。

您应该在文本框中放置一个id标记,如下所示:

<input type=text size=20 name="t1" id=”t1”>

然后像这样调整你的javascript:

var x=parseInt(document.getElementById('t1').value); 

此外,您的代码将无法正常工作,因为它是在页面上生成文本框之前执行的。

要防止它,您可以使用document.ready事件。

或喜欢T.J.的评论克劳德建议:

将脚本放在它引用的元素下面

答案 2 :(得分:1)

您需要将与文本框t1和t2相关的对象传递给javascript,以便处理输入和输出数据。 首先,将html代码更改为

<input type=text size=20 id="t1">
<input type=text size=20 id="t2">
<input type=button onclick="javascript:nn();" value="Sum of Natural Numbers">

然后转到上面的Javascript块并编写此代码

var t1 = document.getElementById("t1");
var t2 = document.getElementById("t2");
var x=parseInt(t1.value,10);

其余代码如下。 快乐的编码!

答案 3 :(得分:1)

您未定义的

t1变量将您的HTML更改为

<input type=text size=20 name="t1" id="t1">

从这个id,您可以在Javascript中获取此元素,如下所示

var x=parseInt(document.getElementById('t1').value); 

在body标签下面编写函数以正确运行脚本

答案 4 :(得分:0)

将此代码放在</body>下:

<script language="javascript">
var x=parseInt(t1.value);
function nn()
{

    var i=1;
    var s=0;
    while (i<=x)
        {
        s=s+i;
        i++;
        }

}

t2.value = S;

执行代码的第一行时,尚未加载此元素。

答案 5 :(得分:0)

尝试以下更新代码。

<head>    
<script language="javascript">
    
    function nn()
    {
     var t1 = document.getElementById('t1'); 
    var x=parseInt(t1.value);

        var i=1;
        var s=0;
        while (i<=x)
            {
            s=s+i;
            i++;
            }
	var t2 = document.getElementById('t2'); 
     t2.value=s;
	
    }

</script>
</head>
<body>
Enter A Number : 
<input type=text size=20 name="t1" id="t1">
<input type=button onclick="nn()" value="Sum of Natural Numbers" >
<br>
Sum Obtained : 
<input type=text size=20 name="t2" id="t2">
</body>