2014-03-04 38 views
1

如何使用javascript創建輸入字段,其中每當用戶單擊下圖中的按鈕時,該值將替換最後一個零。帶有小數位佔位符的HTML輸入0.00

截圖 - http://i.stack.imgur.com/rikcT.png

實施例:

用戶點擊1 - 文本框的值:0.01

用戶然後點擊5 - 文本框的值:0.15

用戶然後Cliks 7 - 值文本框:1.57

目前,如果文本框爲0.00,且用戶單擊1,則新輸入爲0.001。

我不確定這被稱爲研究一種可靠的方式來實現它。

編輯:目前的代碼如下:

<form name="Tender" 
    <input name="Amount" type="text"/> 
</form> 

<a href="#" OnClick="Tender.Amount.value += '1'" class="btn btn-primary btn-large">1</a> 
<a href="#" OnClick="Tender.Amount.value += '2'" class="btn btn-primary btn-large">2</a> 
<a href="#" OnClick="Tender.Amount.value += '3'" class="btn btn-primary btn-large">3</a> 
+0

向我們展示你的'如果文本框有0.00和用戶點擊1,新輸入0.001'代碼。 0.00 + 0.01應該工作...你也可能想看看http://stackoverflow.com/questions/6134039/format-number-to-always-show-2-decimal-places – nickdos

回答

1

這似乎工作:

var num = 0.01 
var add = (num.toFixed(2) + 5) * 10 

的基本思想是,它需要的數量,告訴它被添加到千分之一放置(所以在這種情況下,在1之後),在第1000個位置添加新的數字,然後乘以10來解釋小數位移。

然後,您可以做一個函數:

function add(base, add){ 
    return (base.toFixed(2) + add) * 10 
} 

這是不是超級漂亮,但:

add(add(0.01, 5), 7); 

或者:

var base = 0.01, 
    numbers = [5, 7]; 
for (var i = 0; i < numbers.length; i++){ 
    base = add(base, numbers[i]); 
} 
alert(base); 

將輸出1.57

Here's an example.

+0

我將如何整合到我的當前的代碼?我不明白如何整合它。 (仍然學習基本的Javascript) – user3377041

+0

@ user3377041類似這樣的:http://jsfiddle.net/charlescarver/pN5pK/。雖然我很快將它掀起來,但你必須測試它以確保它完美地工作 – Charlie