jquery的两个输入值的总和

时间:2011-07-01 20:32:52

标签: javascript jquery input

我有代码:

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

7 个答案:

答案 0 :(得分:26)

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

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和其他答案建议的其他验证。

答案 1 :(得分:25)

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

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

答案 2 :(得分:7)

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

答案 3 :(得分:5)

使用parseInt

   var total = parseInt(a) + parseInt(b);


    $('#total_price').val(total);

答案 4 :(得分:2)



<script>
$(document).ready(function(){
var a =parseInt($("#a").val());
var b =parseInt($("#b").val());
$("#submit").on("click",function(){
var sum = a + b;
alert(sum);
});
});
</script>
&#13;
&#13;
&#13;

答案 5 :(得分:1)

将它们转换为数字

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

但在你这样做之前

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

答案 6 :(得分:-1)

如果在多个类中,您希望更改下面示例

中显示的特定类中的其他操作
$('.like').click(function(){    
var like= $(this).text();
$(this).text(+like + +1);
});