jquery的两个输入值的总和

我有代码:

function compute() { if ($('input[name=type]:checked').val() != undefined) { var a = $('input[name=service_price]').val(); var b = $('input[name=modem_price]').val(); var total = a + b; $('#total_price').val(a + b); } } 

在我的代码中,我想要两个文本输入的和值,并写入一个id为“total”的文本输入

我的两个数字并不是例如:

service_price value = 2000modem_price=4000在此示例中,总输入值必须为6000,但它是20004000

您的代码是正确的,除了您添加(连接)字符串,而不是添加整数。 只需将您的代码更改为:

 function compute() { if ( $('input[name=type]:checked').val() != undefined ) { var a = parseInt($('input[name=service_price]').val()); var b = parseInt($('input[name=modem_price]').val()); var total = a+b; $('#total_price').val(a+b); } } 

这应该工作。

下面是一些工作示例,它在选中复选框时的值时更新总和(如果选中此选项,则在更改其中一个字段时也会更新值): jsfiddle 。

因为至少有一个值是字符串,所以+运算符被解释为字符串连接运算符。 对此最简单的解决方法是指示您希望将值解释为数字。

 var total = +a + +b; 

 $('#total_price').val(+a + +b); 

或者,更好的是,只需将它们作为数字开头:

 var a = +$('input[name=service_price]').val(); var b = +$('input[name=modem_price]').val(); var total = a+b; $('#total_price').val(a+b); 

请参阅Mozilla的Unary +文档。

请注意,如果您知道该值将是一个数字,这只是一个好主意。 如果这是用户输入,您必须更加小心,并且可能希望使用parseInt和其他答案建议的其他validation。

使用parseInt作为a = parseInt($('input[name=service_price]').val())

使用parseInt

  var total = parseInt(a) + parseInt(b); $('#total_price').val(total); 
  

将它们转换为数字

 $('#total_price').val(Number(a)+Number(b)); 

但在你这样做之前

 if (!isNaN($('input[name=service_price]').val()) {... 

如果在多个类中,您希望更改下面示例中显示的特定类中的其他操作

 $('.like').click(function(){ var like= $(this).text(); $(this).text(+like + +1); });