首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法创建两个值的和(2+2是*t 4而不是22)?

无法创建两个值的和(2+2是*t 4而不是22)?
EN

Stack Overflow用户
提问于 2013-03-05 00:54:23
回答 6查看 88关注 0票数 0

如果这是个菜鸟问题,我很抱歉,但我是菜鸟。我想把几个文本字段的值之和放到另一个文本字段中。我的代码如下所示:

代码语言:javascript
复制
$('.button').mouseup(function()  {
    var sum = $("#field1").val()+$("#field2").val();
    $("#result").val(sum);
});

当我单击按钮时,3+3的总和不是6,而是33。它只是将所有数字添加到文本字段中。如果我把"+“改成"*”,3*3就是9。有人能告诉我我做错了什么吗?谢谢。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-03-05 00:58:39

当对字符串使用+运算符时,它会将字符串连接起来,而不是像*运算符那样试图将它们强制转换为数字。您可以使用parseInt()来获取整数而不是字符串。

代码语言:javascript
复制
$('.button').mouseup(function()  {
    var sum = parseInt($("#field1").val()) + parseInt($("#field2").val());
    $("#result").val(sum);
});
票数 0
EN

Stack Overflow用户

发布于 2013-03-05 00:57:34

.val()检索一个字符串,添加字符串将它们连接起来。

首先对值使用parseInt(str,10),将它们转换为以10为基数的整数:

代码语言:javascript
复制
var sum = parseInt($("#field1").val(),10)+parseInt($("#field2").val(),10);

如果要处理非整数值,请改用parseFloat()

票数 2
EN

Stack Overflow用户

发布于 2013-03-05 00:57:40

问题是javascript将+操作符解释为字符串连接操作而不是加法。这样做是因为+的左侧和右侧都是字符串值。要获得加法,您需要将它们强制转换为int

代码语言:javascript
复制
var left = parseInt($("#field1").val());
var right = parseInt($("#field2").val());
var sum = left + right;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15206729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档