2012-01-07 110 views
0

当有人点击我的价格上涨按钮时,我希望价格在#priceInput框中增加.1。这只是不工作,虽然..我做错了什么?点击javascript添加?

$("#priceUp").click(function(){ 
    var xyz = parseInt($("#priceInput").val()); 
    xyz=(xyz+.1); 
    $("#priceInput").val(xyz); 
}); 
+4

详细说明“只是不工作” – 2012-01-07 17:49:49

+0

结果如何?价值在变化吗?什么都没发生?你确定事件发生了吗? – Yaniro 2012-01-07 17:50:30

回答

2

您可能想要使用parseFloat而不是parseInt,因为您将价格提高0.1。另外,你需要确保的#priceInput的值是一个数字:

$("#priceUp").click(function() { 
    var xyz = parseFloat($("#priceInput").val() || 0); 
    xyz = (xyz + .1); 
    $("#priceInput").val(xyz); 
}); 

这里有一个working example

5

您试图解析十进制数为整数,所以您的解决方案不能因为数学评估圆你的电话号码工作。
如果运行parseInt函数(0.1),结果为0。

因此,使用parseFloat代替parseInt

您还需要一个小技巧来避免'0.30000000000000004'“bug”(这不是一个真正的bug)。
这里的解决方案:http://jsfiddle.net/erLqa/

+2

你的回答告诉OP如何解决它,而不是他做错了什么。 – Tadeck 2012-01-07 17:54:19

+0

我已经加了一点解释。 – 2012-01-07 17:59:48

+0

+1现在你的答案很好:) – Tadeck 2012-01-07 18:04:46

4

它可能无法工作,因为你加0.1,但后来你使用parseInt。使用parseFloat而不是parseInt

+1

+1用于解释OP做错了什么(按OP要求)。 – Tadeck 2012-01-07 17:54:41

+0

谢谢。乐意效劳 – fcalderan 2012-01-07 17:56:11