$(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。
最佳答案
因为您使用的是字符串。在 input
元素上使用时 val
的返回值始终是一个字符串。 (在具有multiple
的select
元素上,它可以是null
或数组;如果您在其中没有任何元素的jQuery 集上调用它根本上,它将是 undefined
)。
所以首先,使用一元 +
,或 parseInt
,或 parseFloat
,或 Number
.
使用一元 +
的示例(前三行的更改):
var val1 = +$('#v1').val();
var val2 = +$('#v2').val();
var val3 = +$('#v3').val();
var total = val1+val2+val3;
$( "#total" ).val( total ); // Implicit conversion to string here
This answer列出了各种转换为数字的方法及其各种特性。
关于javascript - JS add操作返回char+char,不是int+int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34024704/