HTML5 是否有任何类型的文本字段屏蔽,或者我是否仍然需要捕获 onkeydown
等?
jbabey 是对的——“屏蔽”就像屏蔽某些非法字符,而不是隐藏输入的内容。
我发现的最好(最简单和最可靠)的方法是捕获 onkeyup
,然后只对文本字段的值运行正则表达式替换,删除任何非法字符。
这有几个优点:
- 易于实现(一个功能,两行代码)。
- 它很可靠,涵盖了我想到的所有情况。
- 它不会阻止复制/粘贴、全选或箭头键等键命令。
但它的主要缺点是它会在删除字符之前简要显示输入的字符,这使得它看起来非常老套和不专业。
最佳答案
查找新的HTML5 Input Types .这些指示浏览器执行数据的客户端过滤,但在不同浏览器中的实现是不完整的。 pattern
属性将执行正则表达式样式的过滤,但同样,浏览器并不完全(或根本)不支持它。
但是,这些不会阻止输入本身,它只会阻止提交包含无效数据的表单。您仍然需要捕获 onkeydown
事件以在它显示在屏幕上之前阻止键输入。
关于javascript - 在 HTML(5) 文本输入中屏蔽字符的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10887645/