在Twitter注册过程中,他们不允许您输入除字母数字关键字以外的任何字符
什么是好方法,有效的方法呢?可用的插件似乎有点太慢了,所以我想知道是否有人有更有效的方式这样做
答案 0 :(得分:3)
您可以收听keydown
/ keypress
,查看字符代码,如果不是您想要的内容preventDefault()
或return false
这是jQuery的一个例子。这将创建一个“有效”密钥代码列表,最初填充格式化程序(Escape,Backspace等),然后使用其他有效密钥填充数组。
$('input').keydown(function(e) {
var a=[8,9,13,16,17,18,20,27,35,36,37,38,39,40,45,46,91,92];
var k = e.which;
for (i = 48; i < 58; i++) // 0-9 on top of keyboard
a.push(i);
for (i = 65; i < 91; i++) // a-z
a.push(i);
for (i = 96; i < 106; i++) // 0-9 on numpad
a.push(i);
if (!(a.indexOf(k)>=0)) // prevents disabled keys
e.preventDefault();
});
您还可以使用此数组在提交之前检查用户名的有效性,方法是迭代字符串中的每个字符,并确保它是其中之一。
答案 1 :(得分:2)
我使用这个插件: http://code.google.com/p/jquery-keyfilter/
我没有任何延迟问题。
答案 2 :(得分:1)
您可以为keydown
事件编写事件处理程序,例如,如果文本与正则表达式不匹配,则会停止事件的传播。