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

Posted

技术标签:

【中文标题】为用户格式化输入值和限制 (JavaScript)【英文标题】:Formatting input value and restrictions for user (JavaScript) 【发布时间】:2014-03-16 04:17:54 【问题描述】:

我如何创建一个<input type="text" />,对用户和格式扩展有以下限制,即使用 javascript 或 jQuery?

用户只能使用数字字符。没有别的了。 用户无法删除点。绝不。是否可以?如果不是,用户会移除点,如何在失去焦点时自动恢复点? 在模糊(失去焦点)时,如果小数位为空,脚本将用零填充 (↓)。 我需要这个模式来查看:X XXX.XXtoFixed(2)我可以使用两位小数,但我不知道如何根据模式分隔字符串。

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

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

非常感谢您提供的任何帮助、您的时间和建议。

jsfiddle可以方便。

【问题讨论】:

这不是“为我做所有的工作论坛”。向我们展示您提出的代码,我们将为您提供帮助。 @ Matúš víš, na těchhle bodech jsem se zastavil, jsem začátečník a nevím si rady, stojím na tom celou noc :/ 所以只是一个小导航,查看 jQuery.isNumeric() 函数,它可以帮助您进行很多相关的数字验证。 好的,谢谢。你能告诉我一些关于 jQuery Formatter 的事情吗? code.google.com/p/jquery-numberformatter 不是真的,我对此没有任何经验。大多数时候我使用手写的正则表达式或 $(this).keypress(function(event)) 字符验证 【参考方案1】:

谷歌翻译说他说: "Matus 知道我停止的 těchhle 点,我是初学者,不知道我整晚都站在它上面"

听起来您需要阅读一些 JavaScript 和 jQuery 教程。我从这样的事情开始:jQuery for Absolute Beginners: The Complete Series

真的希望这会有所帮助。

【讨论】:

我认为 Matúš 的导航是我需要的。但我感谢您的回答,并会检查它。【参考方案2】:

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

只有数字

您可以查看字段(查看 .on)进行更改,然后删除不属于集合 [\d][0-9] 的任何字符,但这可能会变得混乱。 一个更好的主意可能是监视 keydown 事件并只允许 keys that represent numbers。

试图动态阻止用户删除点是很麻烦的,所以让我们专注于在字段模糊时将其重新添加。 这很容易,对吧?只需检查.,如果没有,请在字段末尾附加“.00”。

小数位

这确实是和上面一样的问题。您可以使用.indexOf('.') 来确定点是否存在,如果存在,则查看其后是否有数字。如果不是,则附加“00”,确保有2位,如果只有1,则附加“0”。

字符串模式

这确实可以通过多种方式解决,但您可以重复使用从上面搜索小数位的方法,将字符串拆分为“Full Dollar”和“Decimal”部分。 然后,您可以对“Full Dollar”部分使用简单的计数来添加空格。查看Javascript split and splice functions 在各种字符串索引处插入字符。

祝你好运!

【讨论】:

感谢您提供出色的流程建议,一定会检查提到的功能。干杯:-)

以上是关于为用户格式化输入值和限制 (JavaScript)的主要内容,如果未能解决你的问题,请参考以下文章

布尔值和格式化输出

javascript验证代码总结

怎样在excel表中限制操作的单元区域,并且在A1输入一个值,在B1内显示A1的新值和旧值的和呢?!

限制文本控件输入数据格式

Flutter - 文本字段中初始值和用户输入的不同颜色

在javascript中检查给定的日期格式