如何将两个输入字段相加
我在html表中有以下布局:
Id Item Name Value 1 Shampoo 200 2 Soap 20 3 Toothpaste 8 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 :