如何将两个输入字段相加

我在html表中有以下布局:

IdItem NameValue
1Shampoo200
2Soap20
3Toothpaste8
Others
Total

表行的数据是从mysql数据库中获取的,除了第5行(Item:Others)。 页面加载时,也会从mysql数据库中获取“Total”的值。 如果用户将任何值添加到“其他”行,则每次“总计”的值应将用户输入值+“总计”行的值相加。

我试图通过以下jquery代码执行此操作:

 $(document).ready(function(){ $(".ta").keyup(function(){ var vat = $(this).val(); var total = $("#tp").val(); total = vat+total; $("#tp").val(total); }); }); 

但是,它不是两个值的总和,而是添加输入值。 i,g:如果总数为5,000且用户输入为50,则无法将总计算为5050,而是将总值更改为505000.我认为这两个字段中的任何一个都是通过jquery评估为文本而不是数字。

什么应该是正确的代码?

您需要在添加它们之前解析这些文本框值。 您还需要修改输入元素选择器。 ta是元素的id。 你应该使用id选择器( # ):

 $("#ta").keyup(function(){ var vat = parseInt($(this).val()); var total = parseInt($("#tp").val()); total = vat+total; $("#tp").val(total); }); 

尝试

 $(document).ready(function(){ $("#ta").keyup(function(){ var vat = $('#ta').val(); var total = $("#tp").val(); total = vat+total; $("#tp").val(total); }); }); 

使用psrseInt javascript函数

 $(document).ready(function(){ $("#ta").keyup(function(){ var vat = parseInt($(this).val()); var total = parseInt($("#tp").val()); $("#tp").val(vat+total); }); }); 

您使用class选择器而不是使用id选择器(因为HTML结构中没有带类ta元素)并使用parseInt() ,如下所示: –

 $(document).ready(function(){ $("#ta").keyup(function(){ // <-----correct here var vat = parseInt( $(this).val(),10 ) || 0; // <------use parseInt() here var total = parseInt( $("#tp").val(),10 ) || 0; // <------use parseInt() here total = vat+total; $("#tp").val(total); }); }); 

您需要将total的值存储在变量中,否则您将丢失原始值。

另外要添加textfields(字符串)的值,需要将它们转换为int(使用unary plus或parseInt())

 $(document).ready(function() { //store the initial value var total = +$("#tp").val() || 0; $("#ta").keyup(function() { var vat = +$(this).val() || 0; $("#tp").val(vat + total); }); }); 
  
Id Item Name Value
1 Shampoo 200
2 Soap 20
3 Toothpaste 8
Others
Total
 Qty1 : 
Qty2 :
Qty3 :
Qty4 :
Qty5 :
Qty6 :
Qty7 :
Qty8 :


Total :