我的代码Javascript出了什么问题?我在警报窗口中收到的消息是NaN
What is wrong withy my code Javascript? The message I get in the alert window is NaN
这段代码就是不想工作。我在警报窗口中得到的消息是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>
希望这能帮助
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 防止Iframe窗体在新窗口中打开
- 内部分区字体大小获胜'调整浏览器窗口大小时不会随媒体查询而更改
- 调整窗口大小时,可拖动的对象会出现在容器外部
- Javascript排序的图像弹出窗口..可以't单独弹出
- 窗口大小html css
- 弹出窗口出现,然后退出
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- Javascript更新孙窗口中的表单元素
- 如何在选项卡上定义属性'的主窗口对象
- CSS-若窗口太小,滚动条会出现在“表格”单元格上
- 召回窗口加载事件 - javascript
- 为什么不显示警报窗口
- 如何使用modalDialog来显示可以在所有浏览器中工作的弹出窗口
- Chrome应用程序调整窗口大小保持纵横比
- JavaScript NaN equvialence
- 新选项卡被弹出窗口阻止程序阻止
- 如何访问UIWebView'的子窗口上下文
- 刷新父窗口后无法关闭窗口
- 我的代码Javascript出了什么问题?我在警报窗口中收到的消息是NaN