让javascript在onkeyup上将金额添加到合计框中

让javascript在onkeyup上将金额添加到合计框中,javascript,html,Javascript,Html,$ 全部的 $ 因为您一直在替换值,而不是添加值。您需要使用+=而不仅仅是= 另外,根据Emile Bergeron我已经包含了Number()Javascript函数,因为如果输入中没有数字,它将返回NaN。记住,你也应该自己检查一下。有关使用Javascript进行数值解析的更多信息,请参阅以下问答: 尝试将其更改为: function updateTotal() { var total = 0; for (i = 1; i < document.getElementB


$
全部的
$

因为您一直在替换值,而不是添加值。您需要使用
+=
而不仅仅是
=

另外,根据
Emile Bergeron
我已经包含了
Number()
Javascript函数,因为如果输入中没有数字,它将返回
NaN
。记住,你也应该自己检查一下。有关使用Javascript进行数值解析的更多信息,请参阅以下问答:

尝试将其更改为:

function updateTotal() {
    var total = 0;
    for (i = 1; i < document.getElementById("numberoflines").value; i++ ) {
      total += Number(document.getElementById(("Line Item " + i)).value);
    }
    document.getElementById("totalpaying").value = total;
}
函数updateTotal(){
var合计=0;
对于(i=1;i
因为您一直在替换值,而不是添加值。您需要使用
+=
而不仅仅是
=

另外,根据
Emile Bergeron
我已经包含了
Number()
Javascript函数,因为如果输入中没有数字,它将返回
NaN
。记住,你也应该自己检查一下。有关使用Javascript进行数值解析的更多信息,请参阅以下问答:

尝试将其更改为:

function updateTotal() {
    var total = 0;
    for (i = 1; i < document.getElementById("numberoflines").value; i++ ) {
      total += Number(document.getElementById(("Line Item " + i)).value);
    }
    document.getElementById("totalpaying").value = total;
}
函数updateTotal(){
var合计=0;
对于(i=1;i
假设所有值都是
整数
,并且函数中使用的元素ID正确。我修改了密码

function updateTotal() {
var totalline=document.getElementById("numberoflines").value;
var total=0;
    for (var i = 1; i < parseInt(totalline) ; i++ ) {
         var lineitem = document.getElementById("Line Item " + i); //avoid using space in the element's id remove spaces or user a hyphen (-) instead
         total+=parseFloat(lineitem);      
    }
    document.getElementById("totalpaying").value = total;
 }
函数updateTotal(){
var Totaline=document.getElementById(“numberoflines”).value;
var合计=0;
对于(var i=1;i
假设所有值都是
整数
,并且函数中使用的元素ID正确。我修改了密码

function updateTotal() {
var totalline=document.getElementById("numberoflines").value;
var total=0;
    for (var i = 1; i < parseInt(totalline) ; i++ ) {
         var lineitem = document.getElementById("Line Item " + i); //avoid using space in the element's id remove spaces or user a hyphen (-) instead
         total+=parseFloat(lineitem);      
    }
    document.getElementById("totalpaying").value = total;
 }
函数updateTotal(){
var Totaline=document.getElementById(“numberoflines”).value;
var合计=0;
对于(var i=1;i
文本输入总是有一个
字符串
值,您需要在加法之前将
totalpaying
值转换回一个数字,或者使用单独的变量进行加法。您使用的方式将值连接为字符串,这意味着它基本上是
“1”+“2”
变成“12”,而不是
3
+document…
将字符串更改为数字,因为这是如此,OP(和其他读者)可能需要最清楚的答案,我将避免使用
+
解析字符串,而是使用
数字(…)
显式解析字符串。谢谢@EmileBergeron!再次更新答案以包含建议。请注意,
+
数字
是等效的,一个更清晰。有关更多详细信息,请参阅。文本输入总是有一个
字符串
值,您需要在加法之前将
totalpaying
值转换回一个数字,或者使用单独的变量进行加法。您使用的方式将值连接为字符串,这意味着它基本上是
“1”+“2”
变成“12”,而不是
3
+document…
将字符串更改为数字,因为这是如此,OP(和其他读者)可能需要最清楚的答案,我将避免使用
+
解析字符串,而是使用
数字(…)
显式解析字符串。谢谢@EmileBergeron!再次更新答案以包含建议。请注意,
+
数字
是等效的,一个更清晰。有关更多详细信息,请参阅。只是一个小评论。我认为
parseFloat()
parseInt()
更好,这就是为什么我假设所有值都在
integer
中,OP在我删除的答案上评论说他的值是float:)你可以猜到它不是整数,因为它是一些钱。但是,
行项目
在我看来并不是钱@Emile。很抱歉,我没有看到OP对你删除的post@cipher的评论。我的坏消息只是一个小评论。我认为
parseFloat()
parseInt()
更好,这就是为什么我假设所有值都在
integer
中,OP在我删除的答案上评论说他的值是float:)你可以猜到它不是整数,因为它是一些钱。但是,
行项目
在我看来并不是钱@Emile。很抱歉,我没有看到OP对你删除的post@cipher的评论。我的错