我的HTML“sum.html”文件似乎无法使用我的“mathbox.js”文件。我已经在HTML头中声明了它,但是,在Chrome控制台中检查时,num1和num2似乎与sum一起使用sum = num1 + num2。
这是我的Javascript功能;
var num1 = Number(num1);
var num1 = Number(num1);
function calSum(){
var num1 = document.getElementById("num1").innerHTML;
var num2 = document.getElementById("num2").innerHTML;
var add = num1 + num2;
document.getElementById("sum").inneHTML = add;
}
以下是我的HTML
<!DOCTYPE HTML PUBLIC>
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Matchbox</title>
<script type ="text/javascript" src="mathbox.js"></script>
</head>
<body>
<div>
<table border="1">
<tr>
<td style="text-align:right">First number:</td>
<td>
<input type="text" id = "num1" />
</td>
<td rowspan="2">
<input type="button" value="Calculate" onclick="calSum()">
</td>
</tr>
<tr>
<td style="text-align:right">Second number:</td>
<td>
<input type="text" id ="num2" />
</td>
</tr>
</table>
<br>
<table border="1">
<tr>
<td style="text-align:right">Sum:</td>
<td style="width:100px"> <input type="text" id ="sum" onclick="cal" /></td>
</tr>
</table>
</div>
</body></html>
答案 0 :(得分:2)
var num1 = Number(num1); //called only once and it will suffer error
您无法将其解析为全局变量,因为每次您必须将字符串值解析为number
并获取文本框的值使用 {{1} } 属性。
value
答案 1 :(得分:1)
您不能将 .innerHTML 用于输入类型文字
使用如下:
document.getElementById("sum").value = add;
将YOur功能替换如下:
function calSum(){
var num1 = document.getElementById("num1").value;
var num2 = document.getElementById("num2").value;
var add = parseFloat(num1) + parseFloat(num2);
//or you can use var add = Number(num1) + Number(num2);
document.getElementById("sum").value= add;
}
答案 2 :(得分:1)
document.getElementById("num1")
返回一个字符串。在使用Number()
添加之前,您需要将其转换为数字。否则它将进行字符串连接。此外,您还必须使用.innerHTML
而不是.value
。
function calSum(){
var num1 = document.getElementById("num1").innerHTML;
var num2 = document.getElementById("num2").innerHTML;
var add = Number(num1) + Number(num2);
document.getElementById("sum").value = add;
}
答案 3 :(得分:0)
<input type="text" id ="sum" onclick="cal" />
input
元素没有innerHTML
属性。您必须在Javascript中使用value
属性。
就像这样...
document.getElementById("sum").value = add;
答案 4 :(得分:0)
使用此
function calSum(){
var num1 = document.getElementById("num1").value;
var num2 = document.getElementById("num2").value;
var add = Number(num1) + Number(num2);
document.getElementById("sum").value = add;
}
在您的代码中
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">
function calSum(){
alert('sasa');
var num1 = document.getElementById("num1").value;
var num2 = document.getElementById("num2").value;
var add = Number(num1) + Number(num2);
document.getElementById("sum").value = add;
}
</script>
<title>Untitled Document</title>
</head>
<body>
<table border="1">
<tr>
<td style="text-align:right">First number:</td>
<td>
<input type="text" id="num1" />
</td>
<td rowspan="2">
<input type="button" value="Calculate" onclick="calSum()">
</td>
</tr>
<tr>
<td style="text-align:right">Second number:</td>
<td>
<input type="text" id="num2" />
</td>
</tr>
</table>
<br>
<table border="1">
<tr>
<td style="text-align:right">Sum:</td>
<td style="width:100px"> <input type="text" id ="sum" onclick="cal" /></td>
</tr>
</table>
</body>
</html>
答案 5 :(得分:0)
对于输入框,我们使用的值不是innerHTML,innerHTML用于div,td等容器。
所以请改变你的功能
function calSum(){
var num1 = +document.getElementById("num1").value;
var num2 = +document.getElementById("num2").value;
var add = num1 + num2;
document.getElementById("sum").value= add;
}
答案 6 :(得分:0)
将您的功能更改为:
function calSum()
{
var num1 = document.getElementById("num1").value;
var num2 = document.getElementById("num2").value;
if(!isNaN(num1) && !isNaN(num2))
{
add = parseFloat(num1) + parseFloat(num2);
}
document.getElementById("sum").value = add;
}