这已经被无数次地询问,并且提供了很多示例,其中包含大量的JavaScript,或者将inputmode
或pattern
属性与某些正则表达式一起使用。但是,这些功能似乎都无法与数字键盘配合使用(至少在我的iPhone上无法使用)。
因此,我的问题是:这不可能吗?(以简单的HTML5格式)
我需要<input>
即时格式化的货币来编辑数字,例如:1,000,000.00
或在更改国家/地区时将其更改为1 234 567,89
AND,并且出现数字键盘(对于手机很重要)。注意数千个分隔符。
今天只有HTML5无法使用。(2016年6月6日)
您想要的是这样的:
<input type="text" pattern="your-pattern" inputmode="numeric">
但是,inputmode
尚无任何浏览器支持。
上面的代码解释了:
type="number"
因为该pattern
类型不支持该属性,因此我们使用type="text"
。更好的选择可能是type="tel"
因为它还与数字和定界符有关。但是,我不知道它的语义含义(在SEO和实例的屏幕阅读器上)。最安全的方法是text
inputmode
是新的,可让您指定所需的输入模式。可以想象,对移动设备特别有用考虑到您希望即时从一种标准表示法转换为另一种标准表示法,因此您必须使用JavaScript,这样,如果您确实想使用一种number
类型,就可以将其用于模式验证。也许甚至还有另一个公共API通过JS控制键盘(但我对此表示怀疑,可能会导致安全问题)。
最后,和往常一样:如果您的验证很重要,请在服务器端进行验证。客户端永远不应该被信任。(即使他们有cookie。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句