2015-02-05 50 views
0

我的jQuery脚本有点问题:不是统计所有变量,而是脚本将它们放在一起。我如何计算变量? (我是jQuery的新手,所以也许我忽略了一些东西或犯了一个愚蠢的错误)。jQuery不会计算变量

这是应该计算变量的代码行。

totalcost = ((commissioncost + paypalcost) + qrticketcost); 

http://jsfiddle.net/bsuh5q8k/1/

感谢。

+0

您发布的代码不是jQuery,它是JavaScrip。 – 2015-02-05 22:12:34

回答

0

通常,当您使用jQuery的.VAL()从一个字段检索值,你会得到的字符串值(字符串类型),而不是数值,你在这里的愿望。例如,字段值可以是37.50,但你从.VAL()

得到“37.50”所以,当你这样做:

commissioncost = $('input[name=price]').val(); 

你会得到的字符串值。

所以取而代之,试试这个:

commissioncost = Number($('input[name=price]').val()); 

这将转换/施放价值转化为你说出很多。

此外,谨慎的一句话:只要确保该字段中的任何值,就可以评估为一个数字,否则comissioncost将等于"NaN"(不是数字),并会给你同样的悲伤现在。检查类型转换是否成功的基本方法是:

commissioncost = Number($('input[name=price]').val()); 
if(isNaN(commissioncost)){ 
    // oops, value wasn't a number! 
}else{ 
    // hooray! value was a number (most of the time - but that's a longer discussion) 
} 
+0

当使用* value *属性或jQuery的'val()'方法检索值时,您总是会得到一个字符串;尽管要获得一个数字,那么会有'valueAsNumber'属性返回一个数字([demo](http://jsfiddle.net/davidThomas/20tmb2ow/))或者NaN([demo](http:// jsfiddle)。 net/davidThomas/20tmb2ow/1))(在Firefox和Chrome中测试)。 – 2015-02-05 23:10:55

0

commissioncost正在被视为字符串。所以,当你添加它认为你想连接。

当您从输入中拉出它时,请明确告诉Javascript它是一个数字/浮点数。

commissioncost = parseFloat($('input[name=price]').val());