2011-09-25 65 views
2

给定一个文本输入字段。我怎样才能防止用户输入空格,而不是字母数字或短划线( - )。 “如何防止用户在输入字段内输入无效字符

仅限字母数字字符集 - ”字母数字字符集由数字0到9和字母A到Z组成。在perl编程语言中,下划线字符(_)也被认为是字母数字字符集的成员“

这是用于用户可以选择自定义网址的字段。我想阻止用户输入无效字符。

想法?谢谢

+2

确保无论您使用Javascript做什么,只要到达服务器,您也可以进行一些过滤! –

回答

3

你可以使用jQuery keyup(..)方法来做到这一点。您需要检查event.keyCode是否有效。如果无效,您可以通过preventDefault()阻止事件。

记得验证发送到服务器的数据,因为你在javascript中做的任何事情都可以被破坏。

这里是为你做一个库:http://www.itgroup.com.ph/alphanumeric/

+0

只是好奇。为什么不按键?或者我们应该安全行事,并听取keyup.keydown和按键。 –

+0

@KiranRuthR'keypress'与'keydown'类似,不同之处在于它只在按住某个键时才会触发一次。我相信你可以用'keydown'实现一个解决方案。阅读jQuery文档以获取更多信息:http://api.jquery.com/keypress/ –

+0

很酷..感谢您的帮助 –

0

有大量的JavaScript验证库的外面。快速谷歌搜索'javascript验证'产生JQuery Validation plugin插件作为第一击,所以这可能是一个很好的开始。

正如@Chris Cooper所说的,确保你也做了服务器端的验证,因为用户关闭javascript并避免你的客户端验证规则是非常微不足道的。

0

虽然我的回答很晚,但这可能会对读者/技术人员有所帮助。 谁想要实现一个文本框接受以下条件。

  • 应该接受字母。
  • 应该接受Numbers。
  • 不应该接受任何特殊字符。

以下是代码。加入

$("input[name='txtExample'] ").focus(function (e) { 
 
\t \t if (!(e.which != 8 && e.which != 0 && ((e.which >= 48 && e.which <= 57) || (e.which >= 65 && e.which <= 90) || (e.which >= 97 && e.which <= 122)))) { 
 
\t \t \t event.preventDefault(); 
 
\t \t } 
 
\t }).keyup(function (e) { 
 
\t \t if (!(e.which != 8 && e.which != 0 && ((e.which >= 48 && e.which <= 57) || (e.which >= 65 && e.which <= 90) || (e.which >= 97 && e.which <= 122)))) { 
 
\t \t event.preventDefault(); 
 
\t \t \t } 
 
\t }).keypress(function (e) { 
 
\t \t if (!(e.which != 8 && e.which != 0 && ((e.which >= 48 && e.which <= 57) || (e.which >= 65 && e.which <= 90) || (e.which >= 97 && e.which <= 122)))) { 
 
\t \t \t event.preventDefault(); 
 
\t \t } 
 
\t 
 
\t });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" name="txtExample"/>

与例子。

相关问题