我想要做的是用户输入的数字和返回的数字之和。我的逻辑如下:
这是我到目前为止的代码:
<script type='text/javascript'>
var val=document.getElementById('userInput').value;
var temp=val.split(" ");
function sum() {
for(var i=0, MISSING THIS BIT
document.getElementById('resultSum').innerHTML=MISSING THIS BIT;
}
</script>
<form name="input">
<textarea name="userInput" rows=20 cols=20></textarea>
<input name="Run" type=Button value="run" onClick="sum()">
<form name="resultSum"><input type=Text>
我谦虚地承认这可能是错误的,并且感谢任何人的时间和精力。
更新:我按照建议完成了操作,我在下面的代码中收到以下错误:
消息:'document.getElementById(...)'为null或不是对象Line: 16个字符:1个代码:0
<html>
<script type='text/javascript'>
function sum(){
var val = document.getElementById('userInput').value;
var temp = val.split(" ");
var total = 0;
var v;
for(var i = 0; i < temp.length; i++) {
v = parseFloat(temp[i]);
if (!isNaN(v)) total += v;
}
document.getElementById('resultSum').innerHTML=total;
}
</script>
<form name="input">
<textarea name="userInput" rows=20 cols=20></textarea>
<input name="Run" type=Button value="run" onClick="sum()">
<form name="resultSum"><input type=text>
<html>
有什么建议吗?感谢所有人的全面 - 我已经阅读了这两个例子并立即了解了这个过程!
答案 0 :(得分:8)
您需要一个基本循环来转换和添加每个项目。
我还清理了你的HTML。你没有任何正确的结束标签。我还将所有'name'属性更改为'id'属性,以便'getElementById'能够正常工作,这是我在第一次传递时错过的。
<html>
<head>
<script type='text/javascript'>
function sum(){
var val = document.getElementById('userInput').value;
var temp = val.split(" ");
var total = 0;
var v;
for(var i = 0; i < temp.length; i++) {
v = parseFloat(temp[i]);
if (!isNaN(v)) total += v;
}
document.getElementById('resultSumValue').value = total;
}
</script>
</head>
<body>
<form id="input">
<textarea id="userInput" rows=20 cols=20></textarea>
<input id="Run" type=Button value="run" onClick="sum()" />
</form>
<form id="resultSum">
<input id="resultSumValue" type="text" />
</form>
</body>
</html>
这也将忽略任何'NaN'(非数字)的值。
如果您希望数字只是整数(无小数),请将parseFloat更改为parseInt。
答案 1 :(得分:2)
这是一个大纲,但我认为值得自己写一下来学习。
答案 2 :(得分:0)
首先在for循环之前声明变量设置为0。迭代数组中的每个元素(array.length),添加到for循环之前设置的变量。
答案 3 :(得分:0)
<html>
<head>
<title>sum input</title>
<style>
p, textarea,input{font-size:24px}
textarea,input{text-align:right}
</style>
<script>
function sum(){
var val= document.getElementById('userInput').value.replace(/^\D+|D+$/g,'');
document.getElementById('resultSum').value= eval(val.replace(/\D+/g,'+'));
}
</script>
</head>
<body>
<p>Enter a series of numbers :<br>
<textarea id="userInput" rows="10" cols="10"></textarea><br>
<input id="Run" type="button" value="Sum" onClick="sum()">
<input id="resultSum" type="text" readOnly>
</p>
</body>
</html>