为用户格式化输入值和限制 (JavaScript)
Posted
技术标签:
【中文标题】为用户格式化输入值和限制 (JavaScript)【英文标题】:Formatting input value and restrictions for user (JavaScript) 【发布时间】:2014-03-16 04:17:54 【问题描述】:我如何创建一个<input type="text" />
,对用户和格式扩展有以下限制,即使用 javascript 或 jQuery?
用户只能使用数字字符。没有别的了。
用户无法删除点。绝不。是否可以?如果不是,用户会移除点,如何在失去焦点时自动恢复点?
在模糊(失去焦点)时,如果小数位为空,脚本将用零填充 (↓)。
我需要这个模式来查看:X XXX.XX
(toFixed(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)的主要内容,如果未能解决你的问题,请参考以下文章