JavaScript实时验证

时间:2011-04-09 13:33:54

标签: javascript

我有一个移动用户的网站,我希望他们输入电话号码的字段只接​​受“数字”,数字应该只有7位,不多也不少。因此,如果他们尝试输入非整数符号,它将被自动删除/甚至不会显示...如何实现?

1 个答案:

答案 0 :(得分:1)

好吧,为了限制输入的长度,请使用maxlength元素到input元素。

要仅允许数字字符,请将JavaScript事件处理程序绑定到keypress事件,并将preventDefault绑定到事件对象,以便在不是数字时删除密钥。

修改

进行一些测试以确保除了数字字符键之外还允许使用其他常用的键码,例如箭头键,删除和退格键。如果用户不能这样做,那肯定是个问题。

还有其他方法可以解决这个问题。例如,您可以通过过滤和删除每次按下一个键时输入的非数字字符来避免允许其他特殊键的麻烦,这些字符应该是不可见的,即时查看,因为最大字符数为7。

编辑2:

如果这对您来说似乎合理,HTML5引入了许多可能有用的本机表单验证功能,并且受到大多数浏览器的最近版本(和更新版本)的支持。这也非常适合那些没有启用JavaScript的人(但​​请记住,也要经常进行服务器端验证)。