格式化用户的输入值和限制(JavaScript)

时间:2014-03-16 04:17:54

标签: javascript jquery input number-formatting

如何创建<input type="text" />以及用户和格式扩展的以下限制,即使用JavaScript或jQuery?

  • 用户只能使用数字字符。没别了。
  • 用户无法删除该点。决不。可能吗?如果不是,并且用户将删除点,如何在失去焦点时自动返回点?
  • 关于模糊(失去焦点),如果小数位为空,脚本将用零填充(↓)。
  • 我需要这种模式才能查看: X XXX.XX toFixed(2)我可以用两个小数位,但我不知道按照模式分隔字符串的方法。)

当然你已经注意到,文本字段应该是价格。该脚本应该在具有“pr-dec”类的多个输入字段上运行。

<input type="text" class="pr-dec" size="8" value="0.00" />

非常感谢您的帮助,您的时间和建议。

jsfiddle 可以为其提供便利。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

您需要解决许多问题 将它们分解成更小的块并从那里解决它。

仅限数字

您可以观看该字段(查看.on)进行更改,然后删除任何不属于该集[\d][0-9]的字符,但这可能是变得凌乱。
更好的想法可能是观察keydown事件并仅允许keys that represent numbers

The Dot

试图动态阻止用户删除点是混乱的,所以当场模糊时,让我们专注于重新添加它。
这很简单,对吧?只需检查一个.,如果没有,请附加&#34; .00&#34;到了最后的领域。

小数位

这与上面的问题完全相同。您可以使用.indexOf('.')来确定点是否存在,如果存在,请查看其后是否有数字。如果没有,请追加&#34; 00&#34;如果是这样,请确保有2位数字,并附加&#34; 0&#34;如果只有1。

字符串模式

这可以通过多种方式解决,但您可以重复搜索上面的小数位,将字符串拆分为&#34; Full Dollar&#34;和&#34;十进制&#34;部分。
然后你可以使用&#34; Full Dollar&#34;部分添加空格。查看Javascript split and splice functions以在各种字符串索引处插入字符。

祝你好运!