3

从 2003 年开始,我正在努力让一段旧代码正常工作。我正在尝试复制一个 ATM 风格的十进制文本框。该代码声称已为某人工作,但我在实现它时遇到了麻烦。

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

4

2 回答 2

4

这就是我将如何解决它:http: //jsfiddle.net/77bMx/86/

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

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

于 2012-08-01T11:31:27.383 回答
1

好吧,处理输入的代码可以很容易地写成这样:

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

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

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

免责声明:又快又脏

于 2012-08-01T11:27:36.023 回答