我有代码:
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 = 2000
和modem_price=4000
在此示例中,总输入值必须为6000,但它是20004000
答案 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;
答案 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);
});