2012-01-07 107 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