2014-03-04 75 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