ATM样式小数位

时间:2012-07-31 17:52:30

标签: jquery textbox numbers decimal

我正在努力从2003年开始old piece of code工作。我正在尝试复制ATM样式的十进制文本框。此代码声称已为某人工作,但我无法实现它。

也许某人有更好的方法来实现这一目标?也许在jQuery?

2 个答案:

答案 0 :(得分:4)

这就是我要解决的问题:http://jsfiddle.net/77bMx/86/

  • 处理小键盘输入和标准数字键
  • 使用退格键
  • 如果您以某种方式设法产生非法输入(如退避太多),将恢复为0.00

基本思想是拦截对框的任何输入,确保它的类型正确(数字或退格),然后将其添加到后备存储字符串(var input),然后格式化该字符串可以正确显示。用户永远直接在文本框中输入任何内容,因为我在事件处理程序的末尾使用return false

答案 1 :(得分:1)

嗯,处理输入的代码很容易就像这样:

$("#number").keyup(function(e){
    var number = $("#number").val();
    var newValue = (Math.round(parseFloat(number)*100)/100)/100;
});

将其重新放回文本框而不会发生冲突可能是一个挑战,但您可以通过执行以下操作来“伪造”它:

http://jsfiddle.net/AnfCn/1/

免责声明:快速而肮脏