【发布时间】:2016-12-05 13:44:37
【问题描述】:
我知道 html5 输入标签有一个 pattern 属性,但这有助于在用户输入值之后验证字段。
这里的请求是prevent用户输入错误,而不是之后更正。我没有兴趣讨论它是否更好 - 这只是请求。
我也知道我可以为keyPress 事件添加一个事件侦听器并决定接受哪些字符。
但是我看到的所有示例都不是跨浏览器兼容的(我至少对桌面版和移动版的 FF、Chrome 感兴趣)并且它们失败了,因为用户可以输入“----”或“ ......”。
什么是可靠、健壮、跨浏览器的正则表达式模式以允许用户键入:
- 任何数字 [0..9]
- 只有一个小数点('.' 或 ',' 转换为第一个小数点)
- 指定的小数位数(即小数点后的数字)
- 可选的只有一个符号(“+”或“-”)作为第一个字符
- 常用文本命令:箭头键、复制/剪切/粘贴、退格、删除、回车
最好不使用jQuery - 因为我应该只为这个目标添加它。
【问题讨论】:
-
从 UX 经验来看,提供即时反馈解释错误比禁止他们输入错误内容并让他们试图找出为什么他们的角色不在屏幕上要好得多
-
我理解,但正如我所写,设计 UI/UX 的人要求这种行为......
-
作为开发人员,您应该将其推后,说这是一个可用性问题,您将在网站的该部分创建高跳出率 - 我知道如果它我会停止使用它在没有任何反馈的情况下阻止我打字
-
好吧,无论如何,这有点跑题了:它不是“网站”,而是供同一公司的雇主使用的自定义 Web 应用程序。他们使用有 10 年历史的设备,这些设备具有一些像这样的“功能”。老板希望保持相同的 UX 以使过渡“透明”。我并不是说这是正确的方法。如果它在技术上可行,我不能拒绝说“我认为不同”......
标签: javascript regex html input