我的代码Javascript出了什么问题?我在警报窗口中收到的消息是NaN

What is wrong withy my code Javascript? The message I get in the alert window is NaN

本文关键字:窗口 NaN 消息 Javascript 代码 什么 问题 我的      更新时间:2023-09-26

这段代码就是不想工作。我在警报窗口中得到的消息是NaN

<script type="text/javascript">
var number1 = document.numbers.nr1.value
var number2 = document.numbers.nr2.value
function add(){
var total = number1 + number2;
return total;
     }
</script>

<form action="" name="numbers">
<input type="text" name="nr1"  />
<input type="text" name="nr2" />
<input type="submit" onclick="alert(add())" />
</form>

您必须在函数中获取数字。否则,它会在向文本字段中键入任何内容之前(甚至在加载文本字段之前)尝试获取值,当然这些值并没有定义。

function add(){
    var number1 = parseFloat(document.numbers.nr1.value);
    var number2 = parseFloat(document.numbers.nr2.value);
    var total = number1 + number2;
    return total;
}

您必须使用parseInt()parseFloat()的javascript代码应该是这样的。。


var number1=parseInt(document.numbers.nr1.value)
var number2=parseInt(document.nnumbers.nr2.value)

函数add(){
var total=数字1+数字2
收益总额

 }




var number1=parseFloat(document.numbers.nr1.value)
var number2=parseFloat(document.numbers.nr2.value)

函数add(){
var total=数字1+数字2
收益总额

 } 

如果您只需要一个警报,只需查看下面的代码,

<script type="text/javascript">
function add(){ //function to add
var number1 = document.numbers.nr1.value 
var number2 = document.numbers.nr2.value
var total = number1 + number2; //total
alert(total); //alert total
}
</script>

<form action="" name="numbers">
<input type="text" name="nr1"  />
<input type="text" name="nr2" />
<input type="submit" onclick="add()" /> <!--onclick with submit button-->
</form>
    <script type="text/javascript">
function add(){
var number1 = parseInt(document.getElementById("nr1").value);
var number2 = parseInt(document.getElementById("nr2").value);

var total = number1 + number2;
return total;
     }
</script>

<form action="" name="numbers">
<input type="text" name="nr1"  id="nr1" />
<input type="text" name="nr2"  id="nr2"/>
<input type="submit" onclick="alert(add())" />
</form>

当您调用add函数时,不会计算值。由于这两个语句存在于函数之外。请记住,在页面加载过程中,DOM会从上到下进行解析。在页面加载时,DOM遇到这两个语句,并发现它们是undefined。因此,您需要在函数中移动它们。您获得的值是string的形式,因此您需要解析它们,否则将发生string concatenation

查找以下工作代码:

function add(){
var number1 = parseInt(document.numbers.nr1.value, 10);
var number2 = parseInt(document.numbers.nr2.value, 10);
var total = number1 + number2;
return total;
     }
</script>

<form action="" name="numbers">
<input type="text" name="nr1"  />
<input type="text" name="nr2" />
<input type="submit" onclick="alert(add())" />
</form>  

希望这能帮助