只能从简单的Javascript表单返回NaN
我是JS的新手,所以请温柔一点。这个代码出了什么问题?我想我从几个字段中获取文本,将它们相加并显示结果只能从简单的Javascript表单返回NaN,javascript,Javascript,我是JS的新手,所以请温柔一点。这个代码出了什么问题?我想我从几个字段中获取文本,将它们相加并显示结果 <html> <head> <script type="text/javascript"> function displaySum() { var number1 = parseInt(document.getElementById("number1").text); var number2 = parseInt(document.getElementBy
<html>
<head>
<script type="text/javascript">
function displaySum()
{
var number1 = parseInt(document.getElementById("number1").text);
var number2 = parseInt(document.getElementById("number2").text);
var number3 = parseInt(document.getElementById("number3").text);
var number4 = parseInt(document.getElementById("number4").text);
var number5 = parseInt(document.getElementById("number5").text);
var sum = eval(number1 + number2 + number3 + number4 + number5);
document.getElementById("showsum").innerHTML=sum;
}
</script>
</head>
<body>
<form>
First Number: <input type="text' name="number1" id="number1" /><br />
<p id="numberOne"></p>
Second Number: <input type="text' name="number2" id="number2" /><br />
Third Number: <input type="text' name="number3" id="number3" /><br />
Fourth Number: <input type="text' name="number4" id="number4" /><br />
Fifth Number: <input type="text' name="number5" id="number5" /><br />
<button type="button" onclick="displaySum()">Display Sum</button>
<p id="showsum"></p>
</form>
</body>
</html>
函数displaySum()
{
var number1=parseInt(document.getElementById(“number1”).text);
var number2=parseInt(document.getElementById(“number2”).text);
var number3=parseInt(document.getElementById(“number3”).text);
var number4=parseInt(document.getElementById(“number4”).text);
var number5=parseInt(document.getElementById(“number5”).text);
var sum=eval(数字1+数字2+数字3+数字4+数字5);
document.getElementById(“showsum”).innerHTML=sum;
}
第一个号码:
第四个数字:而不是.text
属性,您需要.value
。另外,使用第二个基数参数parseInt()
,以防止意外错误解析带前导零的八进制数
var number1 = parseInt(document.getElementById("number1").value, 10);
var number2 = parseInt(document.getElementById("number2").value, 10);
// etc..
// Don't eval(), just add them.
var sum = number1 + number2 + number3 + number4 + number5;
在jsFiddle上。既然你说你是新来的,我就温和一点:你到底为什么要使用eval
??另外,如果你的解析基数是10,那就不用担心parseInt了。将字符串乘以1会将其转换为以10为基数的整数,即使它以前导零开始。(除非它以0x
开头,这使得它以十六进制形式解析。)当你得到一个“工作得很好”的答案时,请投票并接受它。@Jcubed-无需乘法。在它之前加上一个加号。尝试将其粘贴到控制台:+“034”