【发布时间】:2026-01-15 12:20:12
【问题描述】:
我正在尝试在输入文本中添加逗号,以便在输入时允许输入数字。但也应该允许小数。这是我的数字代码,只是无法计算出小数点。
$('input.number').keyup(function(event) {
// skip for arrow keys
if(event.which >= 37 && event.which <= 40){
event.preventDefault();
}
$(this).val(function(index, value) {
return value
.replace(/\D/g, "")
.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
});
});
如果有人有一个很棒的解决方案,那就太好了。
小提琴: http://jsfiddle.net/yWTLk/348/
更新:一些不错的 cmets,但也许任何人都可以想到一种方法来输入可编辑的文本字段,同时用逗号格式化您的数字并尊重小数。有人告诉我这样做几乎是不可能的,但让我们看看是否有人能想到解决方案。
打字时自动格式化的原因是如果你输入一个非常大的数字,你可能会在输入时迷路。例如:
10000000000000000000000000000000000000000000
正确输入将是一场噩梦,因此自动格式会告诉您您是否丢失或不是零。另一方面,之后验证它会向您显示错误,也许是的,您可以纠正它,但这是一个额外的步骤。
【问题讨论】:
-
如果用户粘贴一个值怎么办?需要考虑的事情。
-
它已经这样工作了,检查小提琴更新。
-
不使用键盘粘贴。另外,如果输入错误,基本上是无法编辑数字的。
-
从用户体验的角度来看,我强烈建议让他们输入他们的值,然后,如果该值有效,之后再更新格式。用户输入时自动格式化会导致界面非常令人沮丧。
-
我同意,只需要实时完成。其他选项是一旦他们点击关闭,他们的价值就可以更新。
标签: javascript jquery html numbers decimal