$(function() {
$("input[class$='m_value']").keyup(function() {
var val1 = $('#v1').val();
var val2 = $('#v2').val();
var val3 = $('#v3').val();
var total = val1+val2+val3;
$( "#total" ).val( total );
});
});
如果#v1 = 1#v2 = 5
我会得到15,而不是6
为什么代码只是char + char ...?这不是int + int。
答案 0 :(得分:4)
因为您正在使用字符串。在val
元素上使用时input
的返回值总是一个字符串。 (在select
元素multiple
上,它可以是null
或数组;如果你在一个完全没有元素的jQuery集上调用它,它将是{{1 }})。
首先,使用一元undefined
或+
,parseInt
或parseFloat
将您的值转换为数字。
使用一元Number
的示例(前三行更改):
+
This answer列出了转换为数字的各种方式及其各种特性。
答案 1 :(得分:0)
val()
函数以文本形式读取所有内容。如果这三个元素的输入始终是整数,则可以使用parseInt
将值转换为整数。
$(function() {
$("input[class$='m_value']").keyup(function() {
var val1 = parseInt($('#v1').val());
var val2 = parseInt($('#v2').val());
var val3 = parseInt($('#v3').val());
var total = val1+val2+val3;
$( "#total" ).val( total );
});
});
以下是ParseInt上的JavaScript参考。