【发布时间】:2012-06-08 21:36:37
【问题描述】:
HTML5 是否有任何类型的文本字段屏蔽,还是我仍然需要捕获 onkeydown 等?
jbabey 是对的——“屏蔽”就像阻止某些非法字符,而不是隐藏输入的内容。
我发现最好的(最简单和最可靠的)方法是捕获onkeyup,然后对文本字段的值运行正则表达式替换,删除所有非法字符。
这有几个优点:
- 很容易实现(一个功能,两行代码)。
- 它很可靠,涵盖了我想到的所有情况。
- 它不会阻止复制/粘贴、全选或箭头键等键盘命令。
但它的主要缺点是它会在删除之前简要显示键入的字符,这使它看起来非常生硬和不专业。
【问题讨论】:
-
为什么不
inputoftype="password"? -
问题可能意味着只允许某些字符出现在文本字段中,例如电话输入的数字和 (-)
-
除非您想要下面讨论的 reg-ex 样式过滤,否则仍然必须执行 onkeydown(请参阅 stackoverflow.com/questions/15728261/…)。
标签: javascript html masking